2015-04-19 1 views
2

У меня есть вкладка разделителями файл вида:Запись разделителями табуляцией файл как объект JSON в Python

123 91860 Sun Mar 16 08:06:25 +0000 2014 feeling terrible. 
789 12139 Sun Mar 16 09:01:07 +0000 2014 children are the blessing of god. 

Теперь я хочу, чтобы написать этот файл как объект JSON, как это:

{"data": [{"text": "feeling terrible.","id": 123},{"text": "children are the blessing of god","id": 678}]} 

Я хочу, чтобы написать код для этого в Python:

import json 
f=open("tree_0","r") 
for line in f: 
    lines=line.split('\n') 
    data=lines[0].split("\t") 
    id=str(data[0]) 
    text=str(data[3]) 

Пожалуйста скажите мне, как сбросить идентификатор и текст в формате JSON, так что я получаю желаемое из положил.

+0

Используйте модуль csv. Вам понадобится csv.DictReader: https://docs.python.org/2/library/csv.html#csv.DictReader –

ответ

2

Вы можете сделать следующее:

import json 
data={} 
with open('data.txt', 'w') as outfile,open("tree_0","r") as f: 
    for line in f: 
     sp=line.split() 
     data.setdefault("data",[]).append({"text": sp[-1],"id": sp[0]}) 
    json.dump(data, outfile) 

Все, что вам нужно, это петля над вами линиями и разделить его, а затем создать предполагаемое dictionary.you можно использовать dict.setdefault метод для выполнения этой задачи.

Затем используйте json.dump, чтобы записать ваши данные в файл!

+1

Большое вам спасибо. Это сработало. – Saurabh

Смежные вопросы