我有一个JSON对象,我想在将其导出为CSV之前将其展平。我想使用flatten_json模块。
我的JSON输入如下所示:
{
"responseStatus": "SUCCESS",
"responseDetails": {
"total": 5754
},
"data": [
{
"id": 1324651
},
{
"id": 5686131
},
{
"id": 2165735
},
{
"id": 2133256
}
]
}
即使像我这样的初学者也很容易,但我在导出时感兴趣的只是数据阵列。所以,我会想到这个:
data_json = json["data"]
flat_json = flatten_json.flatten(data_json)
哪个不起作用,因为数据是一个数组,在Python中存储为列表,而不是字典:
[
{
"id": 1324651
},
{
"id": 5686131
},
{
"id": 2165735
},
{
"id": 2133256
}
]
我应该如何继续将数据数组的内容提供给flatten_json函数?
谢谢!
R上。
答案 0 :(得分:0)
您可以在调用展平方法时选择要忽略的键。例如,在您的情况下,您可以执行以下操作。
flatten_json.flatten(dic, root_keys_to_ignore={'responseStatus', 'responseDetails'})
其中dic
是原始JSON输入。
这将作为输出:
{'data_0_id': 1324651, 'data_1_id': 5686131, 'data_2_id': 2165735, 'data_3_id': 2133256}
答案 1 :(得分:0)
这个函数需要一个ditionary,让我们通过一个:
flat_json = flatten_json.flatten({'data': data_json})
输出:
{'data_0_id': 1324651, 'data_1_id': 5686131, 'data_2_id': 2165735, 'data_3_id': 2133256}