#python #json
Вопрос:
Я пытаюсь получить данные json из URL-адреса запроса с помощью запросов. Результат, который я получаю, — это строка, поэтому сначала я использую загрузки json для преобразования ее в список, а затем я использую дампы json для преобразования ее в словарь данных. Но вместо этого я снова получаю строку. Я хотел бы получить его в качестве словаря данных.
Это код, который я использую:
from json import loads
import json
url = 'https://www.sberbank.hr/umbraco/api/ExchangeRates/GetRates?dateString=1633159401811'
data = requests.get(url).json()
jsondata = loads(data)
print(type(jsondata))
data_dict = json.dumps(jsondata)
print(type(data_dict))
Комментарии:
1. Здесь есть недоразумение.
jsondata = loads(data)
создаетjsondata
структуру данных Python. Вы работаете с этим напрямую. Это:data_dict = json.dumps(jsondata)
превращает структуру данных Python обратно в строку , которую вы можете записать в файл . Таким образом, это отменяет эффектjsondata = loads(data)
. Эта строка будет действительным JSON, и это то, что вам нужно, чтобы отправить измененные данные в другую программу.2. Результатом является список словарей, которые вы можете использовать в цикле for для доступа к элементам.
Ответ №1:
Это работает точно так, как описано в документе: https://docs.python.org/3/library/json.html#json.dumps
Я думаю, что ваши данные jsondata уже представляют собой массив объектов, что вы пытаетесь здесь заархивировать?
Ответ №2:
При использовании json.loads
он преобразует строку json в dict
тип и json.dumps
преобразует dict
в строку json. Просто используйте json.loads
, если вам нужен диктант.
Я проверил данные, которые вы используете. Структура является:
List[Dict]
Так что вы можете оценить его так data[0]
или по любому индексу.