【发布时间】:2020-09-15 11:44:15
【问题描述】:
我有一个像这样的 json 文件
{
"file": "name",
"main": [{
"question_no": "Q.1",
"question": "what is ?",
"answer": [{
"user": "John",
"comment": "It is defined as",
"value": [
{
"my_value": 5,
"value_2": 10
},
{
"my_value": 24,
"value_2": 30
}
]
},
{
"user": "Sam",
"comment": "as John said above it simply means",
"value": [
{
"my_value": 9,
"value_2": 10
},
{
"my_value": 54,
"value_2": 19
}
]
}
],
"closed": "no"
}]
}
想要的结果:
Question_no question my_value_sum value_2_sum user comment
Q.1 what is ? 29 40 john It is defined as
Q.1 what is ? 63 29 Sam as John said above it simply means
我尝试过的是data = json_normalize(file_json, "main"),然后使用像
for ans, row in data.iterrows():
....
....
df = df.append(the data)
但是使用它的问题是我的客户会花费大量时间拒绝该解决方案。 main 列表中有大约 1200 个项目,并且有 450 个这样的 json 文件需要转换。所以这个转换的中间过程需要将近一个小时才能完成。
编辑:
是否可以将my_value 和value_2 的总和作为一列? (也更新了想要的结果)
【问题讨论】:
-
你的 json 无效
-
如果不了解您的问题的更多详细信息,我无法确定。但尝试先将数据附加到列表中,然后只在末尾创建 df,如
df = pd.DataFrame(question_numbers, questions, users, comments)。 -
@Datanovice 现已更正
-
@DominicD 但是用户和 cmets 将被嵌套列表吗?
标签: python json pandas dictionary itertools