2017-10-22 4 views
-1

Beim Versuch, den untenstehenden Code auszuführen, erhalte ich einen Fehler, da 'String-Indizes ganze Zahlen sein müssen', wie man das löst?während ich die Abfrage ausführe, bekomme ich String-Indizes müssen ganze Zahlen sein. Wie kann ich dieses Problem lösen?

import requests 
import pandas as pd 
import numpy as np 
import os 

url = 'https://earthquake.usgs.gov/fdsnws/event/1/queryformat=geojson' +\ 
    '&starttime=2016-10-01&endtime=2016-10-02' 

lat=[] 
lng=[] 

for d in data: 
    lat.append(d['geometry']['coordinates'][0]) 
    lng.append(d['geometry']['coordinates'][1]) 
+0

Geben Sie einige Beispieldaten, die Sie Hashing sind. Sind Daten 2d? – skrubber

+0

also 'Daten' ist ein 4d-Array? Vielleicht möchten Sie Wörterbücher verwenden. oder numpy – awd

+0

{u'geometry ': {coordinates': [-168.3619, 53.237, 12.1], u'type ': u'Point'}, u'id ': u'ak12383570', Das sind die Beispieldaten –

Antwort

0

Ich bin nicht sicher, was Sie die Daten var mit füllen, da Sie diesen Code nicht enthalten, aber das funktioniert.

import requests 
import pandas as pd 
import numpy as np 
import os 
url='https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2016-10-01&endtime=2016-10-02' 

data = requests.get(url) 
data = data.json() 
lat=[] 
lng=[] 
for d in data['features']: 
    lat.append(d['geometry']['coordinates'][0]) 
    lng.append(d['geometry']['coordinates'][1]) 

Ich vermute, Sie haben nicht die Daten von "Funktionen" ausgewählt.

>>> import requests 
>>> import pandas as pd 
>>> import numpy as np 
>>> import os 
>>> url='https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2016-10-01&endtime=2016-10-02' 
>>> 
>>> data = requests.get(url) 
>>> data.json().keys() 
dict_keys(['type', 'metadata', 'features', 'bbox']) 

Bei fehlgeschlagenem Beispiel, bemerken Sie die fehlende 'Features' Taste auf Daten.

>>> import requests 
>>> import pandas as pd 
>>> import numpy as np 
>>> import os 
>>> url='https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2016-10-01&endtime=2016-10-02' 
>>> 
>>> data = requests.get(url) 
>>> data = data.json() 
>>> lat=[] 
>>> lng=[] 
>>> for d in data: 
...  lat.append(d['geometry']['coordinates'][0]) 
...  lng.append(d['geometry']['coordinates'][1]) 
... 
Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
TypeError: string indices must be integers 
>>> 
Verwandte Themen