我遇到了一些困难来将我的CSV文件转换成JSON格式:我的CSV是按以下顺序排列的,其中'label‘和'tweet’是列名,带有TAB间距。
label tweet
0 I love you Sydney #Sydneycafeseige
1 Please do not use today as an excuse
但我喜欢在JSON文件中将数据转换为以下JSON格式
{"tweet": " I love you Sydney #Sydneycafeseige", "label": 0}
{"tweet": "Please do not use today as an excuse ", "label": 0}
{"tweet": "Outrage as bystanders", "label": 0}
{"tweet": "This man carries a gun ", "label": 0}
我试着使用这个脚本,但不起作用:
import csv
import json
csvfile = open('D:\\datasets\\wazeed\\sts_gold_tweet.csv', 'r')
jsonfile = open('D:\\datasets\\wazeed\\file.json', 'w')
fieldnames = ("label","tweet")
reader = csv.DictReader( csvfile)
for row in reader:
json.dump(row, jsonfile)
jsonfile.write('\n')
发布于 2018-05-29 07:23:57
对于这些问题,如果有疑问,您可以直接使用csv.reader
,它在构建字典列表时提供了更多的控制。然后在一个调用中使用json.dump
。
下面是一个演示:
from io import StringIO
import csv, json
mystr = StringIO("""label\ttweet
0\tI love you Sydney #Sydneycafeseige
1\tPlease do not use today as an excuse""")
data = []
# replace mystr with open('file.csv', 'r')
with mystr as f:
reader = csv.reader(f, delimiter='\t')
headers = next(reader)
for line in reader:
data.append({headers[0]: int(line[0]), headers[1]: line[1]})
with open('file.json', 'w') as fout:
json.dump(data, fout)
with open('file.json', 'r') as fin:
d = json.load(fin)
print(d)
[{'label': 0, 'tweet': 'I love you Sydney #Sydneycafeseige'},
{'label': 1, 'tweet': 'Please do not use today as an excuse'}]
https://stackoverflow.com/questions/50574034
复制相似问题