@ilezovofficial

Как создать свой JSON и получить доступ к значению по ключу?

import json
answer = {
        "id": "12",
        "status": "Готов",
        "url": "vk.com"
    }
answer = json.dumps(answer, ensure_ascii=False).encode('utf-8')
answer = str(answer.decode('utf-8'))

print(answer['id'])


Ошибка:
Traceback (most recent call last):
File "c:\Users\ilezo\OneDrive\������� ����\CoalSystem\CoalDesign\test.py", line 47, in
print(answer['id'])
~~~~~~^^^^^^
TypeError: string indices must be integers, not 'str'


В чем проблема?
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Bright144
Так в str не возможно получить доступ по ключи.
Это не правильно:
import json
answer = {
        "id": "12",
        "status": "Готов",
        "url": "vk.com"
    }
answer = json.dumps(answer, ensure_ascii=False).encode('utf-8')     #здесь ты переобразуешь str на bytes
answer = str(answer.decode('utf-8'))                                #здесь обратно в str

print(type(answer))                                                 #вот тип который ты хочешь получить доступ по ключи

Вот это правильно:
import json
answer = {
        "id": "12",
        "status": "Готов",
        "url": "vk.com"
    }
answer = json.dumps(answer, ensure_ascii=False)
answer = json.loads(answer)                         #здесь ты переобразуешь json на данный

print(answer['id'])                                 #получаем данные по ключи
Ответ написан
Комментировать
SoreMix
@SoreMix Куратор тега Python
yellow
Зачем-то превращаете словарь (из которого уже можно взять ключ) в строку, затем строку в байты, затем байты обратно в строку.
answer = {
        "id": "12",
        "status": "Готов",
        "url": "vk.com"
    }
print(answer['id'])
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы