LINUX.ORG.RU

Работа с json

 ,


0

1
def g():
    with open('days.txt', 'r') as f:
        return json.loads(f.read())


f = g()
print(f)

>>>{'amount': 2, 'hash': '6d0d56cbb80fe275ebfdf8e84ee475a5', 'name': 'ivan', 'to_whom': 'katja', 'uuid': '000'}

Как сделать, чтобы вывод был таким(файл изначально записан так):

{                                             
'amount': 2,                                   
 'hash': '6d0d56cbb80fe275ebfdf8e84ee475a5',
 'name': 'ivan',                                           
 'to_whom': 'katja',                                        
 'uuid': '000'
}                                                                            
  json.loads() убирать нельзя 

После парсинга оригинальное форматирование json’а полностью теряется. Можно сделать pretty print, как выше сказали, но точно восстановить форматирование оригинала в общем случае не выйдет.

provaton ★★★★★ ()

Может ты прочтёшь уже какую-нибудь книжку по питону и перестанешь задавать вопросы, ответы на которые есть в любой книжке для начинающих?

frob ★★★★★ ()

Можно попробовать сериализовывать в OrderedDict, который не теряет порядок ключей.

from collections import OrderedDict

def g():
    with open('days.txt', 'r') as f:
        return json.loads(f.read(), object_pairs_hook=OrderedDict)


f = g()
print(json.dumps(f, indent=4, ensure_ascii=False))
Octagon ()
Последнее исправление: Octagon (всего исправлений: 2)