【发布时间】:2018-11-26 08:35:34
【问题描述】:
我无法将这个特定的 Json 文件作为 Pandas 数据框正确读取。我对其他 JSON 示例使用了类似的代码 - 效果很好,但是我需要一些帮助来理解这里可能出现的问题。
嵌套的“特征”无法直接读取并引发错误。实际的表格如下所示:
import json
import pandas as pd
from pandas.io.json import json_normalize
with open("./assessment/0144209a-32ee-4114-bc69-9912dd3dde5c.json") as f:
d = json.load(f)
df = json_normalize(d['results'])
df.head(10)
works_data = json_normalize(data=data['results'], record_path='traits')
works_data.head()
----------------------------------- ---------------------------- KeyError Traceback(最近一次调用 最后)在() ----> 1 works_data = json_normalize(data=data['results'], record_path='traits') 2works_data.head()
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\json\normalize.py 在 json_normalize(数据,record_path,meta,meta_prefix,record_prefix, 错误,九月) 257 记录。扩展(记录) 258 --> 259 _recursive_extract(数据,记录路径,{},级别=0) 260 261 结果 = 数据帧(记录)
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\json\normalize.py 在 _recursive_extract(数据,路径,seen_meta,级别) 233 其他: 234 用于数据中的 obj: --> 235 recs = _pull_field(obj, path[0]) 236 237 # 用于稍后重复元数据
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\json\normalize.py 在_pull_field(js,规范) 180 结果 = 结果[字段] 181 其他: --> 182 结果 = 结果[规格] 183 184返回结果
KeyError: '特征'
【问题讨论】:
-
以文本形式提供数据
-
请问我是否应该将它作为字符串传递,如果是,如何传递?