首页 > 解决方案 > 如何在 pandas python 中将嵌入的 JSON 文件转换为 CSV

问题描述

嗨,我收到了以下格式的 JSON 文件,请告诉我如何解析这个 JSOn 文件并将它们转换为 CSV

JSON文件格式

{'Sections': [{'MC': [[{'IsMandatory': False,
      'LD': None,
      'propNameValuepair': [{'PropertyType': 0,
        'columnSize': 0,
        'isEnabled': False,
        'isStructured': False,
        'isUpdated': False,
        'propDisplayName': 'CC',
        'propName': 'u4_c_c',
        'propValue': 'Bottle',
        'selectedComponent': None,
        'tcProperty': None},
       {'PropertyType': 0,
        'columnSize': 0,
        'isEnabled': False,
        'isStructured': False,
        'isUpdated': False,
        'propDisplayName': 'Com Com',
        'propName': 'u4_com_com',
        'propValue': 'Multi-layer',
        'selectedComponent': None,
        'tcProperty': None},

代码

import json
with open('a.json') as data_file:    
      data = json.load(data_file)
import pandas as pd
df = pd.concat([pd.DataFrame(x) for x in data], ignore_index=False)
print(df)

错误:

ValueError:未正确调用 DataFrame 构造函数!

标签: pythonjsonpython-3.xpandascsv

解决方案


也许您可以先将 json 文件转换为 DataFrame 对象:

df = pd.read_json('file.json')

然后用内置方法转换它:df.to_csv()

注意:在读取 JSON 时,您必须根据带有“orient”属性的 json 格式调整读取参数:

df = pd.read_json('file.json', orient="records")

orient =“记录|索引|列|值|表”


推荐阅读