2016-02-16 6 views
0

Я создал новый документ JSON для загрузки данных в экземпляр couchdb. Код работает. Проблема в том, что данные, написанные скриптом Python, отображаются в одной строке текстовыми редакторами. Есть ли способ добавить разрывы строк? Вот код:Добавление linebreak в json, написанный Python

newdict = {} 
outputdict = {} 
docs_list = [] 

for number, item in enumerate(data['docs']): 
    # pprint (item) 
    # print item['key'][4] 
    newdict["key1"] = item['key'][0] 
    newdict["yek1"] = item['key'][1] 
    newdict["key2"] = item['key'][2] 
    newdict["yek2"] = item['key'][3] 
    newdict["key3"] = item['key'][4] 
    newdict["yek3"] = item['value']['lat'] 
    newdict["key4"] = item['value']['long'] 
    docs_list.append(newdict) 

outputdict["docs"] = docs_list 
outputdict = json.dumps(outputdict) 
pprint (outputdict) 

with open("filename.json",'w') as f: 
    f.write(outputdict) 
+0

Возможный дубликат [как для python prettyprint json-файла] (http://stackoverflow.com/questions/12943819/how-to-python-prettyprint-a-json-file) – tinySandy

ответ

1

this answer От попробовать outputdict = json.dumps(outputdict, indent=4) с количеством пробелов, которые вы хотите отступа.

+0

Пробовал это уже. Не работает. Ошибка не сообщается, но разрывы строк не добавляются. – kurious

0

Это звучит как проблема «Возврат каретки» + «Новая строка», которая заставит файл открываться как одна длинная строка в текстовом редакторе Windows.

Try:

with open("filename.json",'w', newline='\r\n') as f: 

или:

with open("filename.json",'w', newline='\n') as f: 

или может быть даже установка в текстовом редакторе, чтобы исправить эту проблему.

+0

Не работает. TypeError: 'newline' является недопустимым аргументом ключевого слова для этой функции. – kurious

+0

Я использую Sublime Text 3. Reindenting не форматирует текст. Есть ли другой способ сделать это? – kurious