首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CSV到JSON文件的转换

CSV到JSON文件的转换
EN

Stack Overflow用户
提问于 2018-05-29 06:23:32
回答 1查看 164关注 0票数 1

我遇到了一些困难来将我的CSV文件转换成JSON格式:我的CSV是按以下顺序排列的,其中'label‘和'tweet’是列名,带有TAB间距。

代码语言:javascript
复制
label                tweet
0                    I love you Sydney #Sydneycafeseige 
1                    Please do not use today as an excuse

但我喜欢在JSON文件中将数据转换为以下JSON格式

代码语言:javascript
复制
{"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}

我试着使用这个脚本,但不起作用:

代码语言:javascript
复制
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')
EN

回答 1

Stack Overflow用户

发布于 2018-05-29 07:23:57

对于这些问题,如果有疑问,您可以直接使用csv.reader,它在构建字典列表时提供了更多的控制。然后在一个调用中使用json.dump

下面是一个演示:

代码语言:javascript
复制
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'}]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50574034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档