Присваивать строку значений в Python с помощью json

#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. Обновленный ответ: если вам нужны переменные для хранения отдельных элементов словаря, вы можете создать их заранее и обновить внутри цикла