将嵌套的Json读入Pandas错误

时间:2018-06-17 03:52:58

标签: python json pandas

我无法正确读取这个特定的Json文件作为Pandas Dataframe。我已经对其他JSON示例使用了类似的代码 - 这完全有效,但我需要一些帮助来理解这里可能出错的地方。

无法直接读取嵌套的“traits”并引发错误。实际表格如下:

Table Sample

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(最近一次调用   最后)in()   ----> 1 works_data = json_normalize(data = data ['results'],record_path ='traits')         2 works_data.head()

     

C:\ ProgramData \ Anaconda3 \ lib中\站点包\大熊猫\ IO \ JSON \ normalize.py   在json_normalize(data,record_path,meta,meta_prefix,record_prefix,   错误,sep)       257条记录。扩展(recs)       258    - > 259 _recursive_extract(data,record_path,{},level = 0)       260       261 result = DataFrame(records)

     

C:\ ProgramData \ Anaconda3 \ lib中\站点包\大熊猫\ IO \ JSON \ normalize.py   in _recursive_extract(data,path,seen_meta,level)       233其他:       234 for obj in data:    - > 235 recs = _pull_field(obj,path [0])       236       237#稍后重复元数据

     

C:\ ProgramData \ Anaconda3 \ lib中\站点包\大熊猫\ IO \ JSON \ normalize.py   在_pull_field(js,spec)       180结果=结果[字段]       181其他:    - > 182结果=结果[spec]       183       184返回结果

     

KeyError:'traits'

1 个答案:

答案 0 :(得分:1)

在变量名中看起来像一个小的语法错误。您在第11行中包含了 数据 而不是 d 。 切换以下内容:

data=data['results']

对此:

data=d['results']