Ich möchte die "long_name" Daten in den "address_components" in der unten angegebenen JSON extrahieren. Die Herausforderung ist, dass ich nur die Daten "long_name" möchte, deren "Typen" "administrative_area_level_2" ist. Bitte lassen Sie mich wissen, wie Sie nur diese spezifischen Daten vorzugsweise in Python extrahieren. DankeSo extrahieren Sie eine bestimmte Daten aus dem Json mit Python
edit: Beachten Sie, dass js ["Ergebnisse"] [0] ["address_components"] [2] ["long_name"] nicht ist, wie ich seinen Wert extrahieren möchte, da ["address_components"] [2] behält für die verschiedenen als Eingabe angegebenen Orte variieren. meine wichtigsten Kriterien sind immer „administrative_area_level_2“ ist
{
"status": "OK",
"results": [
{
"geometry": {
"location_type": "APPROXIMATE",
"bounds": {
"northeast": {
"lat": 12.9177876,
"lng": 80.24104
},
"southwest": {
"lat": 12.875989,
"lng": 80.20860669999999
}
},
"viewport": {
"northeast": {
"lat": 12.9177876,
"lng": 80.24104
},
"southwest": {
"lat": 12.875989,
"lng": 80.20860669999999
}
},
"location": {
"lat": 12.9009877,
"lng": 80.2279301
}
},
"formatted_address": "Sholinganallur, Chennai, Tamil Nadu, India",
"place_id": "ChIJGzh_3nlbUjoRGz_-itQtu_8",
"address_components": [
{
"long_name": "Sholinganallur",
"types": [
"sublocality_level_1",
"sublocality",
"political"
],
"short_name": "Sholinganallur"
},
{
"long_name": "Chennai",
"types": [
"locality",
"political"
],
"short_name": "Chennai"
},
{
"long_name": "Kanchipuram",
"types": [
"administrative_area_level_2",
"political"
],
"short_name": "Kanchipuram"
},
{
"long_name": "Tamil Nadu",
"types": [
"administrative_area_level_1",
"political"
],
"short_name": "TN"
},
{
"long_name": "India",
"types": [
"country",
"political"
],
"short_name": "IN"
}
],
"partial_match": true,
"types": [
"sublocality_level_1",
"sublocality",
"political"
]
}
]
}
Die folgenden Daten von „long_name“, deren „Typen“ zu extrahieren, ist der Code, den ich versuche, aber ich bekomme nur ausgegeben, bis Ort. Lassen Sie mich wissen, welche Änderungen ich in meinem Code vornehmen muss.
import urllib
import json
apiurl= 'http://maps.googleapis.com/maps/api/geocode/json?'
while True:
address = raw_input('Enter location: ')
if len(address) < 1 : break
url = apiurl + urllib.urlencode({'sensor':'false', 'address': address})
print 'Retrieving', url
uh = urllib.urlopen(url).read()
print 'Retrieved',len(uh),'characters'
js = json.loads(str(uh))
print json.dumps(js, indent=4)
jayz = js["results"][0]
lat = jayz["geometry"]["location"]["lat"]
lng = jayz["geometry"]["location"]["lng"]
print 'lat',lat,'lng',lng
location = jayz['formatted_address']
print location
components = js["results"][0]["address_components"]
names = [component['long_name'] for component in components if 'administrative_area_level_2' in component['types']]
name = names[0]
print "District:", name
Hey vielen Dank für Ihre Hilfe. aber kannst du basierend auf meinem Code oben antworten? Vielen Dank im Voraus –
es basiert auf Ihrem Code! js wird dein JSON-Test zu einem dict ausgewertet. Ich kann das aktualisieren – Nikign
Hey Niki hat funktioniert, danke ich schätze deine Hilfe wirklich –