2017-07-22 9 views
-2

auf eine Liste laden Können Sie bitte lassen Sie mich wissen, wenn ich wieWie Daten aus einer Ruhe URL lesen und in Python

http://domain.ca/ArcGIS/rest/services/appData?f=json&pretty=true 

einen Rest-Service-URL haben, die

{"currentVersion" : 10.05, 
    "folders" : [], 
    "services" : [ 
    {"name" : "appData/Drainage", "type" : "MapServer"}, 
    {"name" : "appData/Parks", "type" : "MapServer"}, 
    {"name" : "appData/Planning", "type" : "MapServer"}, 
    {"name" : "appData/QNet", "type" : "MapServer"}, 
    {"name" : "appData/Sanitary", "type" : "MapServer"}, 
    {"name" : "appData/Street_Lights", "type" : "MapServer"}, 
    {"name" : "appData/Survey", "type" : "MapServer"}, 
    {"name" : "appData/Transportation", "type" : "MapServer"}, 
    {"name" : "appData/Water", "type" : "MapServer"} 
    ] 
} 

wie

aussieht Wie kann alle Namen nach appData/ in eine Liste namens servicesList in Python laden? Ich habe versucht, so etwas wie

myUrl = "http://domain.ca/ArcGIS/rest/services" 
myRequest = myUrl 
response = urllib2.urlopen(myRequest) 
myJSON = response.read() 

aber nicht sicher, ob dies richtig Weg ?!

+0

Was passiert, wenn Sie es die Art und Weise versucht, Sie sagten, Sie getan haben? – Vib

+0

Verwenden Sie das JSON-Modul, um diesen Json mit 'json.loads (myJSON)' zu analysieren. es wird es in ein Python-Wörterbuch konvertieren, von dem Sie den Dienstschlüssel erhalten können, der eine Liste von Wörterbüchern zurückgibt. Nimm das Namensattribut von jedem Wörterbuch in der Liste und ersetze die Zeichenfolge "appData /" durch "" und füge das Ergebnis der Serviceliste hinzu – technusm1

+0

Ein 'urllib2.HTTPError: HTTP-Fehler 404: Kategorie nicht gefunden' –

Antwort

1
serviceList= [] 
    for x in myJSON["services"]: 
     name = x["name"] 
     serviceList.append(name[name.index("/")+1:]) #Find the index of the/and add everything after it to the list 

Dies würde eine Schleife über alle Namen in den Diensten und den Teil nach dem / auf der Service-Liste hinzufügen, wie Sie möchten.

EDIT: Sie müssen auch die Zeichenfolge, die Sie lesen, zuerst in JSON konvertieren. Um dies zu tun:

import json 
newJSON = json.loads(myJSON) 

Sie Dokumentation über json finden here

+0

Danke anon, aber ich bekomme diesen Fehler 'ValueError: Kein JSON-Objekt konnte entschlüsselt werden' on \t' newJSON = json.loads (myJSON) ' – Behseini

Verwandte Themen