【发布时间】:2020-09-15 18:41:31
【问题描述】:
我有一个像这样的 json 文件
{
"file": "name",
"main": [{
"question_no": "Q.1",
"question": "what is ?",
"answer": [{
"user": "John",
"comment": "It is defined as",
"value": {
"numbers": 2,
"submitted_value": [{
"time": "4:06",
"my_value": {
"value1": 5,
"value2": 10
}
},
{
"time": "13:47",
"my_value": {
"value1": 24,
"value2": 30
}
}
]
}
},
{
"user": "Sam",
"comment": "as John said above it simply means",
"value": {
"numbers": 2,
"submitted_value": [{
"time": "6:08",
"my_value": {
"value1": 9,
"value2": 10
}
},
{
"time": "15:24",
"my_value": {
"value1": 54,
"value2": 19
}
}
]
},
"closed": "no"
}
]
}]
}
当我做data = pd.json_normalize(file["main"], record_path='answer', meta='question_no')
我得到的结果是
user comment question_no value
0 John It is defined as Q.1 [{'my_value': 5, 'value_2': 10}, {'my_value': 24, 'value_2': 30}]
1 Sam as John said above it simply means Q.1 [{'my_value': 9, 'value_2': 10}, {'my_value': 54, 'value_2': 19}]
我需要访问列表 value 和字典 submitted_value 中的值,以将 my_value and value_2 的总和作为新列。实际文件有点大,所以请考虑处理总和所花费的时间。
想要的结果:
value1_sum value2_sum question_no user comment
29 40 Q.1 john It is defined as
63 29 Q.1 Sam as John said above it simply means
列的位置不是问题。
【问题讨论】:
-
您的 JSON 是否正确? “提交”不应该在那里。
标签: python pandas list dictionary