我有一个CSV文件,头是键,数据是值。我的目标是将CSV文件转换成Json上传到数据库并输出我上传的数据。我已经成功地将CSV转换为Json,但是我的输出有问题。
我现在拥有的
import csv
import json
import pandas as pd
csvfile = open ('so-emissions-by-world-region-in-million-tonnes.csv','r')
reader = csv.DictReader(csvfile)
result = []
for row in reader:
result.append(row)
result = json.dumps(result)
result = json.loads(result)
keys = ('Entity' ,'Year','SO2 emissions- Clio Infra')
print(result)
CSV数据:
[{'502 emissions- Clio Infra': '0', 'Entity': 'Africa', 'Year': '1860 '},
{'502 emissions- Clio Infra': '0', 'Entity': 'Africa', 'Year': '1870'},
{'502 emissions- Clio Infra': '0.059', 'Entity': 'Africa', 'Year': '1880'},
{'502 emissions- Clio Infra': '0.065', 'Entity': 'Africa', 'Year': '1890'},
{'502 emissions- Clio Infra': '0.071', 'Entity': 'Africa', 'Year': ' 1900'},
{'502 emissions- Clio Infra': '0.146', 'Entity': 'Africa', 'Year': '1910'},
{'502 emissions- Clio Infra': '0.372', 'Entity': 'Africa', 'Year': '1920'},
{'502 emissions- Clio Infra': '0.41', 'Entity': 'Africa', 'Year': ' 1930'},
{'502 emissions- Clio Infra': '0.56 ', 'Entity': 'Africa', 'Year ': '1940'}]
正确输出:
'First Key'
Value 1
Value 2
Value 3
...
'Second Key'
Value 1
Value 2
Value 3
...
'Third Key'
Value 1
Value 2
Value 3
...
如果在数据帧中加载数据,可以尝试使用
.to_dict
。.to_dict()
按列(对于具有索引值的每一列)在映射中转换数据帧。通过转置和使用.to_dict
,这是一个按行映射(对于每个索引,都有一个映射列->;值)。你不需要钥匙,就拿着.values()
注意,如果您使用的是python 3.5,那么这是一个
dict_values
对象,因此在转换为json之前可能需要使用list()
。顺便说一下,您还可以使用
dict(zip(columns, values))
为每行获取一个map column->;值,这样更快。在这种情况下,你根本不需要熊猫。编辑:如果csv没有头,则需要用关键字
names=
在pd.read_csv()
中传递它您可以使用
csv.DictReader
读取CSV,然后用json.dumps
序列化其输出。您当前正在打印结果,即字典本身,如果您希望以问题中所示的良好格式获得输出,则需要通过字典打印每个键及其值
这将在控制台中提供所述的预期输出
相关问题 更多 >
编程相关推荐