Преобразование словаря в JSON в python



r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))


Я не могу получить доступ к моим данным в JSON. Что я делаю не так?



TypeError: string indices must be integers, not str
604   3  

3 ответов:

json.dumps() преобразует словарь в объект str, а не объект json (dict)! таким образом, вы должны загрузить свой str в дикт, чтобы использовать его с помощью json.loads() метод

посмотреть json.dumps() как метод сохранения и json.loads() как метод извлечения.

Это пример кода, который может помочь вам понять больше:

import json

r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
loaded_r = json.loads(r)
loaded_r['rating'] #Output 3.5
type(r) #Output str
type(loaded_r) #Output dict

json.dumps() возвращает JSON строковое представление python dict. посмотреть документы

вы не можете сделать r['rating'] потому что R-это строка, а не дикт больше

возможно, вы имели в виду что-то вроде

r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))

нет необходимости конвертировать его в строку с помощью json.dumps()

r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))

вы можете получить значения непосредственно из объекта dict.

Comments

    Ничего не найдено.