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
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
Відповіді:
json.dumps()
перетворює словник на str
об’єкт, а не на json(dict)
об’єкт! Тож вам доведеться завантажити свій файл str
у, dict
щоб використовувати його 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. Дивіться документи
Ви не можете цього зробити, 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.
loaded_r
, враховуючи, що ти її вже мавr
?