我在python3.6中编写了一个脚本,它查询API数据以从邮政编码返回邮政地址。你知道吗
脚本如下:
import requests
import urllib.parse
main_api = 'http://link.to.api_site/json?'
key = 'AbCdEfGhIjKlMnOpQrStUvWxYz0123456789'
address = '90210'
url = main_api + urllib.parse.urlencode({'address':address, 'key':key})
json_data = requests.get(url).json()
for result in json_data["results"][0]["address_components"]:
print(result["long_name"])
问题是JSON数据的给定顺序。当我从web浏览器运行查询时,数据显示为:
{
"results" : [
{
"address_components" : [
{
"long_name" : "90210",
"short_name" : "90210",
"types" : [ "postal_code" ]
},
{
"long_name" : "Beverly Hills",
"short_name" : "Beverly Hills",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Los Angeles County",
"short_name" : "Los Angeles 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" ]
}
因此,当For循环运行时,它将按以下顺序返回数据:
90210
Beverly Hills
Los Angeles County
California
United States
我更希望地址按不同的顺序打印出来:
Beverly Hills
Los Angeles County
California
United States
90210
所以问题是,当For循环的结果被打印出来时,有没有一种方法可以改变顺序呢。你知道吗
你可以试试这样的东西
但我认为如果没有像上面那样定义顺序是不可能的。你知道吗
一种简单的方法是将每个信息存储到变量中,然后按所需的正确顺序打印每个内容:
您还可以打印除第一个列表外的列表内容,然后“手动”打印第一个列表。你知道吗
也许是这样的?(我不确定这是否有效,我还没有测试过)。你知道吗
相关问题 更多 >
编程相关推荐