我有一个JSON Text File
在JSON文本文件中,有id、title、context、question、is\u impossible、answer\u start和text等列
我试图把它读入一个熊猫数据框。我不熟悉Python和JSON。所以我们来试试函数定义
这是我的密码
def squad_json_pd_df(json_dict):
mylistsize = len((list(json_normalize(json_dict,'data')['title'])))
row = []
for i in range(0,mylistsize):
data = [c for c in json_dict['data']][i]
df = pd.DataFrame()
data_paragraphs = data['paragraphs']
mytitle = data['title']
for article_dict in data_paragraphs:
for answers_dict in article_dict['qas']:
for answer in answers_dict['answers']:
row.append((
answers_dict['id'],
mytitle,
article_dict['context'],
answers_dict['question'],
answers_dict['is_impossible'],
answer['answer_start'],
answer['text']
))
df = pd.concat([df, pd.DataFrame.from_records(row, columns=['id', 'title','context', 'question','is_impossible', 'answer_start', 'answer'])], axis=0, ignore_index=True)
df.drop_duplicates(inplace=True)
return df
with open(dev_datapath) as file:
dev_dict = json.load(file)
dev_df = squad_json_pd_df(dev_dict)
所以这里的问题是-is\u Impossible列中有true和false两个值(当我在文本文件中看到它时)。但是在我加载到Pandas数据帧之后,我只能看到错误的记录
我对这个问题的理解是-对于真实记录,JSON文件结构可能不同,我在Python中没有正确地解析它
不可能的错误结构如下所示
真正的结构如下所示
你没有得到“True”的原因是因为它们在一个不同的json标签下,它们在“似是而非的答案”下,而不是我认为的答案下。在您的代码中,answers\u dict仅从json的“answers”标记中提取,因此您实际上从未在似是而非的\u answers列表上循环,其中标记将设置为True
相关问题 更多 >
编程相关推荐