字段较少的嵌套字典

2024-09-24 06:20:34 发布

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

我不是Python专家。我需要有关data.txt文件中以下数据的帮助

数据.txt

{"ID83": {"Job1": {"Job_Num": "ABC.179", "Job_PNo": "26", "Job_SNo": "750", "Job_name": "Job1"}}} {"ID84": {"Job1": {"Job_Num": "ABC.180", "Job_PNo": "27", "Job_SNo": "850", "Job_name": "Job1a"}}} {"ID85": {"Job2": {"Job_Num": "DEF.20", "Job_PNo": "28", "Job_SNo": "950", "Job_name": "Job2"}}} {"ID86": {"Job3": {"Job_Num": "CDE.150", "Job_PNo": "29", "Job_SNo": "50", "Job_name": "Job3"}}} {"ID87": {"Job2": {"Job_Num": "XYZ.20", "Job_PNo": "30", "Job_SNo": "200", "Job_name": "Job2a"}}} {"ID83": {"Job3": {"Job_Num": "CDE.151", "Job_PNo": "30", "Job_SNo": "55", "Job_name": "Job3a"}}}

我需要将上面的转换成一个.csv文件,包含以下字段和标题

ID Job_Name Job_Num Job_PNo Job_SNo

Job_PNoJob_SNo是整数,其余是字符串。请帮忙转换。我试过用熊猫,但没有得到答案


Tags: 文件数据nametxtdatajobnum专家
1条回答
网友
1楼 · 发布于 2024-09-24 06:20:34
a = [{"ID83": {"Job1": {"Job_Num": "ABC.179", "Job_PNo": "26", "Job_SNo": "750", "Job_name": "Job1"}}},
{"ID84": {"Job1": {"Job_Num": "ABC.180", "Job_PNo": "27", "Job_SNo": "850", "Job_name": "Job1a"}}},
{"ID85": {"Job2": {"Job_Num": "DEF.20", "Job_PNo": "28", "Job_SNo": "950", "Job_name": "Job2"}}},
{"ID86": {"Job3": {"Job_Num": "CDE.150", "Job_PNo": "29", "Job_SNo": "50", "Job_name": "Job3"}}},
{"ID87": {"Job2": {"Job_Num": "XYZ.20", "Job_PNo": "30", "Job_SNo": "200", "Job_name": "Job2a"}}},
{"ID83": {"Job3": {"Job_Num": "CDE.151", "Job_PNo": "30", "Job_SNo": "55", "Job_name": "Job3a"}}},
]

ret = []
for d in a:
  line = []
  for (k,v) in d.items():
    line.append(k)
    inner_dict = list(v.values())[0]
    line.append(inner_dict['Job_name'])
    line.append(inner_dict['Job_Num'])
    line.append(inner_dict['Job_PNo'])
    line.append(inner_dict['Job_SNo'])
  ret.append(line)

csvstr = '\n'.join([','.join(i) for i in ret])

with file('out.csv', 'w') as f:
    f.write(csvstr)

相关问题 更多 >