【发布时间】:2019-09-24 00:22:02
【问题描述】:
我从 OECD 下载了一个关于收入不平等的数据集作为 csv 文件。我只想保留以下数据:LOCATION、TIME、VALUE。
这是 CSV 头部的一部分:
"LOCATION","INDICATOR","SUBJECT","MEASURE","FREQUENCY","TIME","Value","Flag Codes"
"AUS","INCOMEINEQ","GINI","INEQ","A","2014",0.337,
"AUS","INCOMEINEQ","GINI","INEQ","A","2016",0.33,
"AUT","INCOMEINEQ","GINI","INEQ","A","2014",0.274,
"AUT","INCOMEINEQ","GINI","INEQ","A","2015",0.276,
"AUT","INCOMEINEQ","GINI","INEQ","A","2016",0.284,
到目前为止,这是我的转换器代码:
#!/usr/bin/env python
"""Universal CSV to JSON converter with scalability options"""
__author__ = "Tim Verlaan 11669128"
import csv
import json
def convert():
"""Convert CSV file to JSON file"""
# Open the CSV
f = open( 'data.csv')
# Change each fieldname to the appropriate field name.
reader = csv.DictReader( f, fieldnames = ( "LOCATION","INDICATOR","SUBJECT","MEASURE","FREQUENCY","TIME","Value","Flag Codes" ))
# skip the header
next(reader)
# Parse the CSV into JSON
out = json.dumps( [ row for row in reader ] )
# Save the JSON
f = open( 'data_oecd.json', 'w')
f.write(out)
if __name__ == "__main__":
"""Separating the function, for scalability purposes"""
convert()
现在的结果:
[{"LOCATION": "AUS", "INDICATOR": "INCOMEINEQ", "SUBJECT": "GINI", "MEASURE": "INEQ", "FREQUENCY": "A", "TIME": "2014", "Value": "0.337", "Flag Codes": ""}, {"LOCATION": "AUS", "INDICATOR": "INCOMEINEQ", "SUBJECT": "GINI", "MEASURE": "INEQ", "FREQUENCY": "A", "TIME": "2016", "Value": "0.33", "Flag Codes": ""}, {"LOCATION": "AUT", "INDICATOR": "INCOMEINEQ", "SUBJECT": "GINI", "MEASURE": "INEQ", "FREQUENCY": "A", "TIME": "2014", "Value": "0.274", "Flag Codes": ""}, {"LOCATION": "AUT", "INDICATOR": "INCOMEINEQ", "SUBJECT": "GINI", "MEASURE": "INEQ", "FREQUENCY": "A", "TIME": "2015", "Value": "0.276", "Flag Codes": ""}, {"LOCATION": "AUT", "INDICATOR": "INCOMEINEQ", "SUBJECT": "GINI", "MEASURE": "INEQ", "FREQUENCY": "A", "TIME": "2016", "Value": "0.284", "Flag Codes": ""}
想要的结果:
[{"LOCATION": "AUS", "TIME": 2014, "VALUE": 0.337}, {"LOCATION": "AUS", "TIME": 2016, "VALUE": 0.33}
【问题讨论】: