Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dataframe replace在Python中对json不起作用_Python_Json_Regex_Pandas - Fatal编程技术网

Dataframe replace在Python中对json不起作用

Dataframe replace在Python中对json不起作用,python,json,regex,pandas,Python,Json,Regex,Pandas,我有一个dataframe final_data,其中包含列['rulelogid','final_value'] 虽然它们最初是字符串类型,但我仍然使用 final_data['rulelogid']=final_data['rulelogid'].astype('str') final_data['final_value']=final_data['final_value'].astype('str') 行的列final_值内的数据如下所示: "{" "invoice_descriptio

我有一个dataframe final_data,其中包含列['rulelogid','final_value']

虽然它们最初是字符串类型,但我仍然使用

final_data['rulelogid']=final_data['rulelogid'].astype('str')
final_data['final_value']=final_data['final_value'].astype('str')
行的列final_值内的数据如下所示:

"{"
"invoice_description"
":"
"{"
"RuleType7"
":"
"{"
"nruleid"
":"
"-1"
","
"taxonomyid"
":"
"-1"
"}"
"}"
"}"
{
"invoice_description": {
    "RuleType7": {
        "nruleid": "-1",
        "taxonomyid": "-1"
                 }
    }
}
在将数据帧中已经存在的JSON转换为最终数据中的JSON时,我有额外的双引号。我试图将列转换为字符串,并用一个
替换
,但替换似乎不起作用

final_data=final_data.replace(to_replace=['""'],value=['"'],regex=True)
结果应该如下所示:

"{"
"invoice_description"
":"
"{"
"RuleType7"
":"
"{"
"nruleid"
":"
"-1"
","
"taxonomyid"
":"
"-1"
"}"
"}"
"}"
{
"invoice_description": {
    "RuleType7": {
        "nruleid": "-1",
        "taxonomyid": "-1"
                 }
    }
}
但即使在执行之后,我的数据看起来也和以前一样。 有人能指出我哪里出了错吗?谢谢你的阅读:)

编辑1: 我有7个数据帧,每个规则类型都有如下数据:

*rulelogid*       *RuleType3*
872564          {"RuleType7": {"nruleid": "-1","taxonomyid": "-1"}
...              ....
我将所有这些数据帧合并到一个
final_data
中,该数据帧现在有8列(即
rulelogid
和所有规则类型)。现在我想将此数据帧转换为JSON,不包括
rulelogid
列。因此我使用以下代码:

df_rulelogid = pd.DataFrame(final_data['rulelogid'])
final_data=final_data.drop(['rulelogid'],axis=1)
data_q=[]
for i in final_data.index:
    data=final_data.loc[i].to_json()
    data_q.append(data)
df=pd.DataFrame(data_q)
df.columns=['final_value']
final_data=pd.concat([df_rulelogid,df],axis=1)
我得到了我发布的示例数据,这不是我想要的JSON的外观

编辑2:


执行建议后使用
apply(ast.literal\u eval)
,所有数据都转换为正确的json格式,但使用单引号。有什么方法可以将所有单引号更改为双引号吗?

您的示例是17行还是1行?数据以这种方式被删除。所有示例数据仅存在于一行中。它是一个JSONOk,如何读取json?按函数?是否需要解析数据将json作为标量值rom到数据帧?还有另一个数据帧(其中7个)的数据存储为
“RuleType7”:{“nruleid”:“-1”,“taxonomyid”:“-1”}
对于每种规则类型。我正在将7个数据帧中的数据合并到一个数据帧中。因此,现在我有8个列,包括
rulelogid
。我最终将这些列合并成一个JSON,就像我粘贴的一样。首先,我测试了replace,对我来说,它工作得很好。因此,似乎问题在于其他方面。因此,最好的是添加json示例,如何创建数据框架来模拟您的问题。谢谢。