В чем разница между json.dumpsи json.load?
Насколько я понимаю, один загружает JSON в словарь, а другой - в объекты.
Ответы:
dumps берет объект и производит строку:
>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'
load взял бы файловый объект, прочитал бы данные из этого объекта и использовал бы эту строку для создания объекта:
with open('file.json') as fh:
a = json.load(fh)
Обратите внимание, что dumpи loadконвертировать между файлами и объектами, аdumps и loadsконвертировать между строками и объектами. Вы можете думать о sфункциях -less как об оболочках вокруг sфункций:
def dump(obj, fh):
fh.write(dumps(obj))
def load(fh):
return loads(fh.read())
objectв смысле «нечто отличное от типа str». Строка like '"foo"'декодируется в объект Python ; строка like декодируется в список Python и т. д.str'foo'"[1,2,3]"[1,2,3]
dumps()- кодирование в объекты JSONdump()loads()load()
json load -> возвращает объект из строки, представляющей объект json.
json dumps -> возвращает строку, представляющую объект json из объекта.
загрузка и дамп -> чтение / запись из / в файл вместо строки