#python #json
#python #json
Вопрос:
import requests
headers = {'Authorization': 'token'}
url = "url"
response = requests.get(url,headers=headers)
print(response.text)
Мой запрос возвращает строку значений, и я хотел бы присвоить каждому из них переменную в Python
. Я очень новичок в программировании и перепробовал здесь много разных решений, но, похоже, ничего не работает.
Комментарии:
1. Что он возвращает?
2. {«success»:true,»errors»:[],»results»:[{«skuId»:1043421,»lowPrice»:28.7500,»lowestShipping»:0.00,»lowestListingPrice»:28.7500,»marketPrice»:56.14,»directLowPrice»:null}]}
3. И использовать можно использовать
request.json
для получения JSON из ответа4. @AbhigyanJaiswal ты имеешь в виду
response.json()
?5. @jarmod Да, я имел в виду, что
Ответ №1:
используйте json.loads():
import json
import requests
response = requests.get(...)
json_data = json.loads(response.text)
Это преобразует ваш текст в словарь, а затем вы можете получить доступ к значениям, используя ключ словаря
Комментарии:
1. ошибка имени json_data = json.loads(response.text): имя ‘json’ не определено — это ошибка, которую я получаю
2. вам нужно установить пакет json и импортировать его.
3. Я установил пакет json и получаю ту же ошибку
Ответ №2:
Вы можете использовать request.json
. Так , например:
import requests
headers = {'Authorization': 'token'}
url = "url"
response = requests.get(url,headers=headers)
json = response.json()
low_prices = json["results"][0]["lowPrice"]
print(low_prices)
Комментарии:
1. low_prices = json[«results»][0][«low_prices»] Ключевая ошибка: ‘low_prices’
Ответ №3:
import requests
import json
url = 'https://api.covidtracking.com/v1/us/daily.json'
response = requests.get(url)
output = json.loads(response.text)
top5 = output[:5]
for item in top5:
print(f'Date - {item["date"]} t Positive Cases - {item["positive"]} t Total Test Results - {item["totalTestResults"]}')
date, positive и totalTestResults — это все ключи объекта json, полученные из api. Ваш будет другим.
json — это встроенный пакет, вы должны иметь возможность просто импортировать его и использовать. Если вы получаете сообщение об ошибке, пожалуйста, загрузите снимок экрана вашего кода и сообщение об ошибке.
Отредактировано: присваивать переменным
import requests
import json
url = 'https://api.covidtracking.com/v1/us/daily.json'
response = requests.get(url)
output = json.loads(response.text)
size = len(output)
date = [None]* size
positive= [None]*size
totalTests = [None]*size
for i in range(size):
date[i] = output[i]["date"]
positive[i] = output[i]["positive"]
totalTests[i] = output[i]["totalTestResults"]
print(date)
print(positive)
print(totalTests)
Комментарии:
1. Я смотрю на это, и я не уверен, что понимаю. Будет ли это присваивать значения отдельным переменным?
2. Нет, он выводит отдельные значения. Вы можете назначить их следующим образом ‘date = item[«дата»]’
3. Ошибка типа: не хэшируемый тип: ‘slice’
4. Обновленный ответ: если вам нужны переменные для хранения отдельных элементов словаря, вы можете создать их заранее и обновить внутри цикла