W poniższym kodzie pojawia się błąd „TypeError: indeksy ciągów muszą być liczbami całkowitymi”.

import json

import requests

url = "https://petition.parliament.uk/petitions/300139.json"

response = requests.get(url)
data = response.text
parsed = json.loads(data)

sig_count = data["attributes"]["signature_count"]

print(sig_count)
-2
Peter Bland 13 marzec 2020, 00:30

2 odpowiedzi

Najlepsza odpowiedź

import json

url = 'https://petition.parliament.uk/petitions/300139.json'

response = requests.get(url)
data = response.text

parsed = json.loads(data)

sig_count = parsed["data"]["attributes"]["signature_count"]

print(sig_count)    

Wywołujesz zmienną data zamiast parsowania. Brakuje też klucza „data” podczas filtrowania.

2
Peter 12 marzec 2020, 21:36

Po użyciu json.loads() musisz użyć nowo zdefiniowanej zmiennej, ponieważ operacja nie ma miejsca. data` to plik json w jego surowej postaci, interpretowany jako ciąg.

Spróbuj z:

parsed['attributes']['signature_count']

1
Celius Stingher 12 marzec 2020, 21:34