微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Python 在 json 字符串中查找信息

如何解决使用 Python 在 json 字符串中查找信息

我尝试通过 Google Geocoding API 查找地址的纬度和经度。

我使用以下代码获得了 json 字符串:

address = "the Empire State Building" 
api_key = " " #not shown here
url = "https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s" % (address,api_key) 
response = requests.get(url) 
response_data = response.json()

字典response_data如下所示。

{'results': [{'address_components': [{'long_name': '20','short_name': '20','types': ['street_number']},{'long_name': 'West 34th Street','short_name': 'W 34th St','types': ['route']},{'long_name': 'Manhattan','short_name': 'Manhattan','types': ['political','sublocality','sublocality_level_1']},{'long_name': 'New York','short_name': 'New York','types': ['locality','political']},{'long_name': 'New York County','short_name': 'New York County','types': ['administrative_area_level_2','short_name': 'NY','types': ['administrative_area_level_1',{'long_name': 'United States','short_name': 'US','types': ['country',{'long_name': '10001','short_name': '10001','types': ['postal_code']}],'formatted_address': '20 W 34th St,New York,NY 10001,USA','geometry': {'location': {'lat': 40.7484405,'lng': -73.98566439999999},'location_type': 'ROOFTOP','viewport': {'northeast': {'lat': 40.7497894802915,'lng': -73.98431541970848},'southwest': {'lat': 40.7470915197085,'lng': -73.98701338029149}}},'place_id': 'ChIJaXQRs6lZwokRY6EFpJnhNNE','plus_code': {'compound_code': 'P2X7+9P New York,NY,'global_code': '87G8P2X7+9P'},'types': ['establishment','museum','point_of_interest','tourist_attraction']}],'status': 'OK'}

我应该怎么做才能获得该地址的纬度和经度?

解决方法

当您运行 print(type(response_data)) 时,它返回 dict

如果是 dict 类,则可以使用 dict 方法.... 不幸的是,您想要的值在字典中的字典中的字典中的字典中的列表中。

长话短说,试试

latlong =  response_data['results'][0]['geometry']['location']
print(latlong)

更长的解释: “response_data”是一个字典,有 2 个键(您的信息存储在“结果”中)。 'results' 的值是一个列表,1 个条目(您的信息位于索引 0)。 索引 0 处的值是一个 dict,有 6 个键(您的信息位于 key = 'geometry')。 'geometry' 的值是一个字典,有 3 个条目(您的信息位于关键的 'location' 处)。 'location' 的值是一个字典,2 个条目(您的信息!!!'lat'、'lng')。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?