将大型嵌套JSON转换为CSV

2024-04-25 06:50:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python相当陌生,有几个嵌套的JSON文件需要转换成CSV文件

其结构如下:

{'Z': {'@SchemaVersion': 9,
  'FD': [{'FDRecord': [{'NewCase': {'@TdrRecVer': 5,
   'CaseLabel': '',
   'StdHdr': {'DevDateTime': '2000-05-02T10:43:18',
    'ElapsedTime': 0,
    'GUID': '5815D34615C15690936B822714009468',
    'MsecTime': 5012,
    'RecId': 4},
   'UniqueCaseId': '5389F346136315497325122714009468'}},
 {'NewCase': {'@TdrRecVer': 5,
   'CaseLabel': '',
   'StdHdr': {'DevDateTime': '2000-05-02T10:43:18',
    'ElapsedTime': 0,
    'GUID': '5819D346166610458312622714009468',
    'MsecTime': 9459,
    'RecId': 4},
   'UniqueCaseId': '5819F346148627009653284714009468'}},
 {'AnnotationEvt': {'@EvtName': 'New',
   '@TdrRecVer': 1,
   'DevEvtCode': 13,
   'Payload': '0 0 0 0',
   'StdHdr': {'DevDateTime': '2000-05-02T10:43:18',
    'ElapsedTime': 0,
    'GUID': '5899D34616BC1000938B824538219968',
    'MsecTime': 7853,
    'RecId': 8},
   'TreatmentSummary': 1,
   'XidCode': '0000000B'}},
 {'TrendRpt': {'@TdrRecVer': 9,
   'CntId': 0,
   'DevEvtCode': 30,
   'StdHdr': {'DevDateTime': '2000-05-02T10:43:18',
    'ElapsedTime': 0,
    'GUID': '5819C34616781004852225698409468',
    'MsecTime': 4052,
    'RecId': 12}, ...

我的问题是,大多数在线示例都展示了如何在创建csv时显式地声明键或字段名来读入一个非常小的json并将其写出csv。我的文件太大了,有些文件超过了40MB。在

我试着从网上效仿另一个人的榜样(如下),但没有成功:

^{pr2}$

运行此程序时,我收到以下错误:

AttributeError: 'str' object has no attribute 'keys'

我知道出于某种原因,它将我想要拉的键当作一个字符串对象,但我不知道如何绕过这个问题,并正确地将其解析为csv。在


Tags: 文件csvjsonguid陌生elapsedtimerecidnewcase