【发布时间】:2021-08-15 17:11:05
【问题描述】:
问题
我正在尝试编写以下嵌套字典列表,其中包含另一个 csv 字典列表。我尝试了多种方法,但我无法正确编写它:
Json 数据
[
{
"Basic_Information_Source": [
{
"Image": "image1.png",
"Image_Format": "PNG",
"Image_Mode": "RGB",
"Image_Width": 574,
"Image_Height": 262,
"Image_Size": 277274
}
],
"Basic_Information_Destination": [
{
"Image": "image1_dst.png",
"Image_Format": "PNG",
"Image_Mode": "RGB",
"Image_Width": 574,
"Image_Height": 262,
"Image_Size": 277539
}
],
"Values": [
{
"Value1": 75.05045463635267,
"Value2": 0.006097560975609756,
"Value3": 0.045083481733371615,
"Value4": 0.008639858263904898
}
]
},
{
"Basic_Information_Source": [
{
"Image": "image2.png",
"Image_Format": "PNG",
"Image_Mode": "RGB",
"Image_Width": 1600,
"Image_Height": 1066,
"Image_Size": 1786254
}
],
"Basic_Information_Destination": [
{
"Image": "image2_dst.png",
"Image_Format": "PNG",
"Image_Mode": "RGB",
"Image_Width": 1600,
"Image_Height": 1066,
"Image_Size": 1782197
}
],
"Values": [
{
"Value1": 85.52662890580055,
"Value2": 0.0005464352720450282,
"Value3": 0.013496113910369758,
"Value4": 0.003800236380811839
}
]
}
]
工作代码
我尝试使用以下代码,它可以工作,但它只保存了标题,然后将所有基础列表作为文本转储到 csv 文件中:
import json
import csv
def Convert_CSV():
ar_enc_file = open('analysis_results_enc.json','r')
json_data = json.load(ar_enc_file)
keys = json_data[0].keys()
with open('test.csv', 'w', encoding='utf8', newline='') as output_file:
dict_writer = csv.DictWriter(output_file, keys)
dict_writer.writeheader()
dict_writer.writerows(json_data)
ar_enc_file.close()
Convert_CSV()
工作输出/问题
输出写入以下标头:
- Basic_Information_Source
- Basic_Information_Destination
- 价值观
然后它将每个标头中的所有其他数据转储为如下列表:
[{'Image': 'image1.png', 'Image_Format': 'PNG', 'Image_Mode': 'RGB', 'Image_Width': 574, 'Image_Height': 262, 'Image_Size': 277274}]
预期输出/样本
尝试为字典数组中的每个字典生成上述类型的输出。
如何正确写法?
【问题讨论】:
-
你的首选输出是什么?
-
您想完全展平输出吗?如果是这样,你想如何表示嵌套列表?我们真的需要看到您希望的输出才能提供帮助。
-
@Axe319 谢谢,我已经添加了预期的输出格式。我正在尝试为数组中的每个 dict 生成类似的格式。
-
@JonSG 谢谢,我已经添加了预期的输出格式。我正在尝试为数组中的每个 dict 生成类似的格式。
标签: json python-3.x csv