首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ijson在GoogleMaps中解析Python

使用ijson在GoogleMaps中解析Python
EN

Stack Overflow用户
提问于 2016-05-13 05:44:39
回答 1查看 844关注 0票数 3

我正在尝试解析来自Pandas的JSON响应,以便将嵌套的dict中的值读入GoogleMaps DataFrame。JSON响应的结构如下所示。

我正在尝试创建一个名为'address_components‘的类型,其中('types','short_name','long_name')作为列标题,每个地址查询的相应值作为行。

我尝试使用ijson:

代码语言:javascript
复制
from ijson import items
import ijson
f = urlopen('https://maps.googleapis.com/maps/api/geocode/json?address=2022+Boren+Ave%2C+Seattle+98101')

objects = list(ijson.items(f, 'results.address_components'))

objects

输出:[]

我的问题是如何成功地遍历嵌套的语句。

我还回顾了GoogleMaps GeoLocator API DocumentationGoogleMaps JSON parsing docsThis solution seems to solve the problem, but on IOS

不帮我伸手进巢。

代码语言:javascript
复制
    "results" : [
      {
         "address_components" : [
            {
               "long_name" : "1600",
               "short_name" : "1600",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Amphitheatre Pkwy",
               "short_name" : "Amphitheatre Pkwy",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Mountain View",
               "short_name" : "Mountain View",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Clara County",
               "short_name" : "Santa Clara County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "94043",
               "short_name" : "94043",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
         "geometry" : {
            "location" : {
               "lat" : 37.4224764,
               "lng" : -122.0842499
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 37.4238253802915,
                  "lng" : -122.0829009197085
               },
               "southwest" : {
                  "lat" : 37.4211274197085,
                  "lng" : -122.0855988802915
               }
            }
         },
         "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}
EN

回答 1

Stack Overflow用户

发布于 2016-05-13 05:58:17

您可以使用json_normalize()::

代码语言:javascript
复制
import requests
import json
import pandas as pd

url = 'https://maps.googleapis.com/maps/api/geocode/json?address=2022+Boren+Ave%2C+Seattle+98101'

r = requests.get(url)

if r.status_code != requests.codes.ok:
    r.raise_for_status()

results = json.loads(r.text)

df = pd.io.json.json_normalize(results['results'], 'address_components')

print(df)

测试:

代码语言:javascript
复制
In [17]: pd.io.json.json_normalize(results['results'], 'address_components')
Out[17]:
       long_name   short_name                                     types
0           2022         2022                           [street_number]
1   Boren Avenue    Boren Ave                                   [route]
2       Belltown     Belltown                 [neighborhood, political]
3        Seattle      Seattle                     [locality, political]
4    King County  King County  [administrative_area_level_2, political]
5     Washington           WA  [administrative_area_level_1, political]
6  United States           US                      [country, political]
7          98121        98121                             [postal_code]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37197958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档