Я столкнулся с некоторыми трудностями при преобразовании моего CSV-файла в формат JSON: Мой CSV находится в следующем порядке с интервалом TAB, где "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')
@WazedAli, Если вы можете отредактировать свой вопрос и точно указать проблему с вашей последней попыткой, мы более чем готовы помочь.
Можете ли вы проверить сейчас
@coldspeed, повторное открытие, поскольку OP теперь предоставил некоторый соответствующий код.






С этими проблемами, если вы сомневаетесь, вы можете использовать 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'}]
Спасибо большое, все работает, как вы сказали. но можно было бы сделать вывод без штрихов '[' и ']' в начале и конце, а также без 'запятой' между массивом json.
Что ты пробовал?