Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将字典中的值分开放入CSV?_Python_Python 3.x - Fatal编程技术网

Python 如何将字典中的值分开放入CSV?

Python 如何将字典中的值分开放入CSV?,python,python-3.x,Python,Python 3.x,我试图将JSON输出写入CSV,但我不确定如何将我的值分隔为各个列 这是我当前的代码 with open('dict.csv', 'w') as csv_file: writer = csv.writer(csv_file) for key, value in response.json().items(): writer.writerow([value]) print(value) 这是我得到的csv文件: 这是我想要的csv文件/输出: 这是我的JSON输出的一个示例 [{'i

我试图将JSON输出写入CSV,但我不确定如何将我的值分隔为各个列

这是我当前的代码

with open('dict.csv', 'w') as csv_file:
writer = csv.writer(csv_file)

for key, value in response.json().items():
   writer.writerow([value])
print(value)
这是我得到的csv文件:

这是我想要的csv文件/输出:

这是我的JSON输出的一个示例

[{'id': '123', 'custom_id': '12', 'company': 28, 'company_name': 'Sunshine'}, {'id': '224', 'custom_id': '14', 'company': 38, 'company_name': 'Flowers'}, 
{'id': '888', 'custom_id': '10', 'company': 99, 'company_name': 'Fields'}]
这个JSON格式怎么样?(一个更复杂的问题)

尝试:


使用
pandas
库:

  • -将对象写入逗号分隔值(csv)文件
Ex.

import pandas as pd

data = [{'id': '123', 'custom_id': '12', 'company': 28, 'company_name': 'Sunshine'},
 {'id': '224', 'custom_id': '14', 'company': 38, 'company_name': 'Flowers'},
{'id': '888', 'custom_id': '10', 'company': 99, 'company_name': 'Fields'}]

df = pd.DataFrame(data)
df.to_csv('sample.csv')

给定
json
格式的响应数据

response =  [{'id': '123', 'custom_id': '12', 'company': 28, 'company_name': 'Sunshine'}, 
            {'id': '224', 'custom_id': '14', 'company': 38, 'company_name': 'Flowers'}, 
            {'id': '888', 'custom_id': '10', 'company': 99, 'company_name': 'Fields'}]
可以使用将其转换为列表列表

header = [response[0].keys()]
data = [row.values() for row in response]
csv_list = header + data
然后使用将其保存到
csv

with open('dict.csv', "w") as f:
    for row in csv_list:
        f.write("%s\n" % ','.join(str(col) for col in row))

这应该会产生您想要的输出

您可以添加Json示例吗?您可以发布一个示例dict文件,我可以在发布答案之前对其进行测试吗?@Damiánrafaellatenero这是Json示例[{'id':'123','custom_id':'12','company':28',company_name':'Sunshine'},{'id':'224','custom_id':'14','company':38,'company_name':'Flowers'},{'id':'888','custom_id':'10','company':99,'company_name':'Fields'}]@TarunKolla这是JSON格式的示例dict[{'id':'123','custom id':'12','company 28,'company_name':'Sunshine':'Sunshine'},{'id':'224','custom_id':'14','company':38','company_name':'Flowers'},{'id':'888','custom_id':'10','company':99',company_name':'Fields'}]请将所有相关信息添加到问题本身。
csv_columns=dict_data[0]。keys()
这也取决于您希望如何使用代码。谢谢,这是可行的,但是对于更复杂的JSON,列表包含不同的变量,因此上面的代码将无法满足它的要求,那该怎么办呢?(我在问题中添加了更复杂的JSON)
header = [response[0].keys()]
data = [row.values() for row in response]
csv_list = header + data
with open('dict.csv', "w") as f:
    for row in csv_list:
        f.write("%s\n" % ','.join(str(col) for col in row))