json
| Введение | |
| Строку в json | |
| Похожие статьи |
Введение
В этой статье вы можете изучить приёмы работы с JSON на питоне.
Строку в json
Рассмотрим две строки, которые отличаются только кавычками.
s1 соответствует формату
json
то есть названия полей заключены в двойные кавычки.
s1 = '{"a": 1, "b":2}' print(f"s1: {s1}") print(f"type(s): {type(s1)}") s2 = "{'a': 1, 'b':2}" print(f"s2: {s2}") print(f"type(s2): {type(s2)}")
s1: {"a": 1, "b":2} type(s): <class 'str'> s2: {'a': 1, 'b':2} type(s2): <class 'str'>
s1 можно сходу превратить в json
import json s1 = '{"a": 1, "b":2}' j = json.loads(s1) print(f"type(j): {type(j)}") print(j)
type(j): <class 'dict'> {'a': 1, 'b': 2}
s2 превратить в json cходу не получится
import json s2 = "{'a': 1, 'b':2}" j = json.loads(s2) print(f"type(j): {type(j)}") print(j)
Traceback (most recent call last): File "C:\Users\Andrei\j2.py", line 6, in <module> j = json.loads(s2) ^^^^^^^^^^^^^^ File "C:\Users\Andrei\AppData\Local\Programs\Python\Python312\Lib\json\__init__.py", line 346, in loads return _default_decoder.decode(s) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Andrei\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Andrei\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) ^^^^^^^^^^^^^^^^^^^^^^ json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
Обойти эту проблему можно с помощью ast
import ast s2 = "{'a': 1, 'b':2}" j = ast.literal_eval(s2) print(f"type(j): {type(j)}") print(j)
type(j): <class 'dict'> {'a': 1, 'b': 2}
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги
Автор статьи: Андрей Олегович
| json.dumps() | |
| Python | |
| dict, list, str … | |
| Работа с REST API на Python | |
| Файлы: записать, прочитать… | |
| Обучение Python |