[英]How do i pull out certain data from this json response?
這是在python中打開的鏈接:
response = urllib.request.urlopen('http://freegeoip.net/json/1.2.3.4').read()
print(response)
打印響應后,結果如下:
b'{"ip":"1.2.3.4","country_code":"US","country_name":"United States","region_code":"WA","region_name":"Washington","city":"Mukilteo","zip_code":"98275","time_zone":"America/Los_Angeles","latitude":47.913,"longitude":-122.305,"metro_code":819}\n'
我的問題是,我如何僅打印區域名稱? 到目前為止,我有此代碼:
import json
import urllib.request
response = urllib.request.urlopen('http://freegeoip.net/json/1.2.3.4').read()
print(response)
result = json.loads(response.decode('utf8'))
這是提取卡住的特定數據的最后一步。 提前致謝!
從json.loads返回的結果對象將是一個字典,因此您可以像這樣打印值:
print result['region_name']
甚至更好的是,在不存在密鑰的情況下更具防御性:
print result.get('region_name', 'No region specified')
另請注意,您的urllib調用應為:
response = urllib.urlopen('http://freegeoip.net/json/1.2.3.4').read()
此時,您將能夠像使用python對象一樣訪問它:
result['region_code']
您可以使用ast.literal_eval:
>>> import ast
>>> my_dict = ast.literal_eval(response.strip())
>>> my_dict['region_name']
'Washington'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.