【发布时间】:2022-08-19 03:09:39
【问题描述】:
如果我在 json 文件中有这样的字典/json 列表,我如何使用 python 脚本或除手动之外的任何其他方式将其转换为 csv。
我在这里的标题将展平它,每个键都有一个值作为一列。这里的数组Response,我想让这里的每个元素成为一个单独的行,上面的所有数据都与各个列相同。因此,例如,如果下面的Response 数组有 3 个项目,那么列表中应该有 3 行项目,如 adRefId、addrRefId 等,数组中的上下字段相同,即 creation_date 、expiration_date、modification_date、revision、adRefId、addrRefId、doc_type等。
[
{
\"aggregate_result\": [],
\"explain\": \"\",
\"key_with_document\": [
{
\"document\": {
\"creation_date\": 1643342434,
\"expiration_date\": 2053342527,
\"modification_date\": 1643342527,
\"revision\": 4,
\"struct\": {
\"MatchResponse\": [
{
\"adRefId\": \"e6040-c8dcdb165993\",
\"addrRefId\": \"city_list:0\",
\"MatchCode\": \"REGI_ADDR_BLOCK\",
\"maxScore\": 0.9968223809704663
},
{
\"adRefId\": \"800-3c7a04dc8d3f\",
\"addrRefId\": \"address_list:0\",
\"MatchCode\": \"_ADDR_BLOCK\",
\"maxScore\": 0
},
{
\"adRefId\": \"ab39f31d-6b21-4377-9c91-85fdd345c22a\",
\"addrRefId\": \"name_block_list:0\",
\"MatchCode\": \"ADDR_BLOCK\",
\"maxScore\": 0
}
],
\"MatchStatus\": 200,
\"dataRefs\": [
{
\"addressRef\": {
\"addrRefId\": \"0\",
\"addrType\": \"REGISTRATION_ADDRESS\",
\"addressLine1\": \"123 Test Street\",
\"addressLine2\": \"\",
\"city\": \"\",
\"country\": \"Federation\",
\"postalCode\": \"12345\",
\"province\": \"\"
},
\"dataId\": \"0\"
}
],
\"docType\": \"_SCREEN\",
\"extRefId1\": \"b326c63721536765412099\",
\"extRefId1Type\": \"\",
\"extRefId2\": \"\",
\"extRefId2Type\": \"_SETTINGS\",
\"ules\": [
\"1213395\"
],
\"Status\": [
\"20\"
]
}
},
\"key\": {
\"id\": [
{
\"collection\": \"__ROOT__\",
\"string\": \"3721536765412099_E\"
}
],
\"is_partial\": false
}
}
]
}
]
我尝试了以下方法,但无法在 meta 中包含正确的语法以包含要包含的列。
def main():
so()
data = read_json(filename=\'Extract1.json\')
df2 = pd.json_normalize(data, record_path=[\'key_with_document\', [\'document\',\'struct\',\'MatchResponse\']], meta=[\'key_with_document\']) # Here how to include keys like creation_date, expiration_date etc.
print(df2)
df2.to_csv(\'out2.csv\')
if __name__ == \'__main__\':
main()
-
您到底想要哪些列?你为什么不向我们展示整个列表呢?基本上,您将创建一个包含运行值的字典。每次完成一行时,都会将其转储到 CSV 文件中。
-
请尝试创建一个minimal, reproducible example。显示一组准确、完整的输入,以及确切期望的相应输出.
标签: python json python-3.x export-to-csv