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

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: