如何在python中打印具有相同字段的多个json值

如何在python中打印具有相同字段的多个json值,python,python-3.x,Python,Python 3.x,我正试图从API接收的json输出中打印python中的json值,如下所示 邮政编码:CB3 0FA 国家:英国 地区:英格兰东部 def loadJsonResponse(url): return json.loads(req.urlopen(url).read().decode('utf-8'))['result'] def nearestPostcode(postcode): url = 'https://api.postcodes.io/postcodes/{}/n

我正试图从API接收的json输出中打印python中的json值,如下所示

邮政编码:CB3 0FA 国家:英国 地区:英格兰东部

def loadJsonResponse(url):
    return json.loads(req.urlopen(url).read().decode('utf-8'))['result']


def nearestPostcode(postcode):
    url = 'https://api.postcodes.io/postcodes/{}/nearest'.format(postcode)
    value = loadJsonResponse(url)
    for i in value['result']:
        zip_code = i['postcode']
        print (zip_code)
邮政编码:CB3 0GT 国家:英国 地区:英格兰东部

def loadJsonResponse(url):
    return json.loads(req.urlopen(url).read().decode('utf-8'))['result']


def nearestPostcode(postcode):
    url = 'https://api.postcodes.io/postcodes/{}/nearest'.format(postcode)
    value = loadJsonResponse(url)
    for i in value['result']:
        zip_code = i['postcode']
        print (zip_code)
邮政编码:CB3 0英尺 国家:英国 地区:英格兰东部

def loadJsonResponse(url):
    return json.loads(req.urlopen(url).read().decode('utf-8'))['result']


def nearestPostcode(postcode):
    url = 'https://api.postcodes.io/postcodes/{}/nearest'.format(postcode)
    value = loadJsonResponse(url)
    for i in value['result']:
        zip_code = i['postcode']
        print (zip_code)
下面是我的Json输出:

{
"status": 200,
"result": [
    {
        "postcode": "CB3 0FA",
        "quality": 1,
        "eastings": 542934,
        "northings": 258794,
        "country": "England",
        "nhs_ha": "East of England",
        "longitude": 0.090435,
        "latitude": 52.208837,
        "european_electoral_region": "Eastern",
        "primary_care_trust": "Cambridgeshire",
        "region": "East of England",
        "lsoa": "Cambridge 007D",
        "msoa": "Cambridge 007",
        "incode": "0FA",
        "outcode": "CB3",
        "distance": 0,
        "parliamentary_constituency": "Cambridge",
        "admin_district": "Cambridge",
        "parish": "Cambridge, unparished area",
        "admin_county": "Cambridgeshire",
        "admin_ward": "Newnham",
        "ccg": "NHS Cambridgeshire and Peterborough",
        "nuts": "Cambridgeshire CC",
        "codes": {
            "admin_district": "E07000008",
            "admin_county": "E10000003",
            "admin_ward": "E05002710",
            "parish": "E43000042",
            "parliamentary_constituency": "E14000617",
            "ccg": "E38000026",
            "nuts": "UKH12"
        }
    },
    {
        "postcode": "CB3 0GT",
        "quality": 1,
        "eastings": 542895,
        "northings": 258788,
        "country": "England",
        "nhs_ha": "East of England",
        "longitude": 0.089862,
        "latitude": 52.208793,
        "european_electoral_region": "Eastern",
        "primary_care_trust": "Cambridgeshire",
        "region": "East of England",
        "lsoa": "Cambridge 007D",
        "msoa": "Cambridge 007",
        "incode": "0GT",
        "outcode": "CB3",
        "distance": 39.47393492,
        "parliamentary_constituency": "Cambridge",
        "admin_district": "Cambridge",
        "parish": "Cambridge, unparished area",
        "admin_county": "Cambridgeshire",
        "admin_ward": "Newnham",
        "ccg": "NHS Cambridgeshire and Peterborough",
        "nuts": "Cambridgeshire CC",
        "codes": {
            "admin_district": "E07000008",
            "admin_county": "E10000003",
            "admin_ward": "E05002710",
            "parish": "E43000042",
            "parliamentary_constituency": "E14000617",
            "ccg": "E38000026",
            "nuts": "UKH12"
        }
    },
    {
        "postcode": "CB3 0FT",
        "quality": 1,
        "eastings": 542856,
        "northings": 258824,
        "country": "England",
        "nhs_ha": "East of England",
        "longitude": 0.089307,
        "latitude": 52.209126,
        "european_electoral_region": "Eastern",
        "primary_care_trust": "Cambridgeshire",
        "region": "East of England",
        "lsoa": "Cambridge 007D",
        "msoa": "Cambridge 007",
        "incode": "0FT",
        "outcode": "CB3",
        "distance": 83.54443275,
        "parliamentary_constituency": "Cambridge",
        "admin_district": "Cambridge",
        "parish": "Cambridge, unparished area",
        "admin_county": "Cambridgeshire",
        "admin_ward": "Newnham",
        "ccg": "NHS Cambridgeshire and Peterborough",
        "nuts": "Cambridgeshire CC",
        "codes": {
            "admin_district": "E07000008",
            "admin_county": "E10000003",
            "admin_ward": "E05002710",
            "parish": "E43000042",
            "parliamentary_constituency": "E14000617",
            "ccg": "E38000026",
            "nuts": "UKH12"
        }
    }
]
}
我看到下面的脚本执行错误

Enter the postcode : CB3 0FA
You entered postcode--> CB3 0FA
Traceback (most recent call last):
  File "./py_script3.py", line 62, in <module>
    nearestPostcode(postcode)
  File "./py_script3.py", line 42, in nearestPostcode
    for i in value['result']:
TypeError: list indices must be integers or slices, not str
输入邮政编码:CB3 0FA
您输入了邮政编码-->CB3 0FA
回溯(最近一次呼叫最后一次):
文件“/py_script3.py”,第62行,在
最近的邮政编码(邮政编码)
文件“/py_script3.py”,第42行,最近的邮政编码
对于i的值['result']:
TypeError:列表索引必须是整数或片,而不是str

这应该可以使用格式化打印,通过加载
json
输出进行测试

for i in value['result']:
    print('POSTCODE: {} England REGION: {}'.format(i['postcode'], i['region']))

POSTCODE: CB3 0FA England REGION: East of England
POSTCODE: CB3 0GT England REGION: East of England
POSTCODE: CB3 0FT England REGION: East of England

请解释一下这里的问题是什么。我在最后的主要问题中添加了错误。。很抱歉输入邮政编码:CB3 0FA您输入的邮政编码-->CB3 0FA回溯(上次调用):文件“/py_script3.py”,第62行,在最近的邮政编码(邮政编码)文件中“/py_script3.py”,第42行,在最近的邮政编码中输入i in value['result']:类型错误:列表索引必须是整数或切片,而不是在主要问题中添加的strI,我的apologies@garg_hbti我想说的是,问题在于如何加载json,能否修复帖子上的缩进并显示如何调用最近的jsonpostcode@garg_hbti如果您将该文件保存到
blah.json
中,然后加载它,它会工作,因此它必须与您加载它的方式有关,而不是实际的内容循环遗漏的是,我直接从loadJsonResponse(url)返回result部分,一旦我从那里删除了['result']部分,它就像一个符咒一样工作。谢谢