【发布时间】:2021-05-10 04:36:48
【问题描述】:
这是我的 json 文件的一个子集:
d = {'data': {'questions': [{'id': 6574,
'text': 'Question #1',
'instructionalText': '',
'minimumResponses': 0,
'maximumResponses': None,
'sortOrder': 1,
'answers': [{'id': 362949, 'text': 'Answer #1', 'parentId': None},
{'id': 362950, 'text': 'Answer #2', 'parentId': None},
{'id': 362951, 'text': 'Answer #3', 'parentId': None},
{'id': 362952, 'text': 'Answer #4', 'parentId': None}]}]}}
我想将它放入一个数据框中,每个问题和每个答案对应一行。
Python 代码:
from pandas import json_normalize
import json
fields = ['text','answers.text']
with open(R'response.json') as f:
d = json.load(f)
data = json_normalize(d['data'],['questions'],errors='ignore')
data = data[fields]
print(data)
这会产生 KeyError:
KeyError: "['answers.text'] not in index"
在这玩了几个小时,绝对无法弄清楚这一点。我觉得它应该很简单,但它从来都不是。
【问题讨论】:
标签: python json pandas json-normalize