我是python的新手。请帮我做这件事。
我在一个json文件中有以下示例json数据,有时有数千条或更多条记录
漂亮的json版本
美观json
原始数据
**{"odata.context":"https://example.com/services/api/x/odata/api/views/$metadata#vw_rpt_review_response_ecomment";,"值":[{"pr_comment_id":1."pr_comment":"测试评论";},{"pr_comment_id":2."pr_comment":"测试评论";},{"pr_comment_id":3."pr_comment":"测试评论";}],
"@odata.nextLink": "https://example.com/services/api/x/odata/api/views/$metadata#vw_rpt_review_response_comment?$skip=1000"
}{"odata.context":"https://example.com/services/api/x/odata/api/views/$metadata#vw_rpt_review_response_ecomment";,"值":[{"pr_comment_id":4."pr_comment":"测试评论";},{"pr_comment_id":5."pr_comment":"测试评论";},{"pr_comment_id":6."pr_comment":"测试评论";}],
"@odata.nextLink": "https://example.com/services/api/x/odata/api/views/$metadata#vw_rpt_review_response_comment?$skip=2000"
}**
我需要将其转换为如下数据帧,以导出到数据库表或保存为csv
数据帧
下面是我尝试的代码
import pandas as pd
import json
df = pd.read_json(r"path/output.json", lines=True)
print(df)
还有
import pandas as pd
import json
from pandas import json_normalize
info = json.loads(response)
但我得到的错误是
加载(json,precise_float=self.precise_浮点(,dtype=NoneValueError:预期的对象或值
当您在其中一个JSON条目中有一个列表时,结果是一个非标准的JSON,这就是您遇到问题的原因。如果您想创建一个带有注释id和注释的数据框架,只需在数据中迭代即可。
inter=jsonobj["value"]
ids=[]
comments=[]
for val in inter:
ids.append(val["pr_comment_id"])
comments.append(val["pr_comment"])
data=pd.DataFrame()
data["pr_comment_id"]=ids
data["pr_comment"]=comments
如果您有许多json对象,请遍历所有对象,并将数据帧声明保留到最后。