@Xe1ga

Почему не работает json.loads?

Почему при выполнении кода возникает ошибка?

File "/home/olga/.pyenv/versions/3.9.0/lib/python3.9/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)


import json 

old = str({"1": "red", "2": "black", "3": "green"})
new = json.loads(old)
  • Вопрос задан
  • 2007 просмотров
Решения вопроса 3
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что строковое представление словаря - это не JSON.
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
потому что JSON не соответствует стандарту - не те кавычки.
А так заработает:
import json 

old = json.dumps({"1": "red", "2": "black", "3": "green"})
new = json.loads(old)
Ответ написан
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
В файле data.txt у нас такая строка:
{'1': 'red', '2': 'black', '3': 'green'}
Тогда можно прочитать словарь из файла так:
import json 

with open('data.txt') as file:
	data = file.read()

json_data = json.loads(data)
print(type(json_data))
print(json_data)

Вот что на выходе:
<class 'dict'>
{'1': 'red', '2': 'black', '3': 'green'}


import json 

old = json.dumps({"1": "red", "2": "black", "3": "green"}, indent = 4)
new = json.loads(old)

print(new['1'])

How To Convert Python Dictionary To JSON?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы