В чем разница между 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 из объекта.
загрузка и дамп -> чтение / запись из / в файл вместо строки
источник