gpt4 book ai didi

python - 将 CSV 转换为 JSON,同时删除某些列

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:21 25 4
gpt4 key购买 nike

我从 OECD 下载了一个 csv 文件形式的收入不平等数据集。我只想保留以下数据:位置、时间、值。

这是 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", "值": "0.337", "标志代码": ""}, {"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", "标志代码": ""}, {"LOCATION": "AUT", "INDICATOR": "INCOMEINEQ", "SUBJECT": "GINI", "MEASURE": "INEQ", "FREQUENCY": "A", "TIME": "2015", "值": "0.276", "标志代码": ""}, {"LOCATION": "AUT", "INDICATOR": "INCOMEINEQ", "SUBJECT": "GINI", "MEASURE": “INEQ”,“频率”:“A”,“时间”:“2016”,“值”:“0.284”,“标志代码”:“”}

想要的结果:

[{"LOCATION": "AUS", "TIME": 2014, "VALUE": 0.337}, {"LOCATION": "AUS", "TIME": 2016, "VALUE": 0.33}

最佳答案

您可以在列表理解中提取所需的键

例如:

import csv
import json

with open('data.csv') as infile:
reader = csv.DictReader(infile)
out = [{"LOCATION": row['LOCATION'],"TIME": row["TIME"], "VALUE": ["Value"]} for row in reader]

with open('data_oecd.json', 'w') as outfile:
json.dump(out, outfile) #Write to JSON.

输出:

[{'LOCATION': 'AUS', 'TIME': '2014', 'VALUE': ['Value']},
{'LOCATION': 'AUS', 'TIME': '2016', 'VALUE': ['Value']},
{'LOCATION': 'AUT', 'TIME': '2014', 'VALUE': ['Value']},
{'LOCATION': 'AUT', 'TIME': '2015', 'VALUE': ['Value']},
{'LOCATION': 'AUT', 'TIME': '2016', 'VALUE': ['Value']}]

关于python - 将 CSV 转换为 JSON,同时删除某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56003944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com