如何在python中隔离json的一部分?

2024-09-24 22:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我在我的代码中使用了api,它以json格式输出,如下所示

{"rates":{"CZK":25.738},"base":"EUR","date":"2021-02-09"}

我只希望CZK部分so 25.738作为输出

我试过这个

def get_kurz():
    res = requests.get('https://api.exchangeratesapi.io/latest?symbols=CZK')
    kurz = json.loads(res.text)
    result = (kurz['CZK'])
    return(result)

但这不起作用,我能让它发挥作用的是

def get_kurz():
    res = requests.get('https://api.exchangeratesapi.io/latest?symbols=CZK')
    kurz = json.loads(res.text)
    result = (kurz['rates'])
    return(result)

这就产生了

{'CZK': 25.738}

Tags: httpsioapijsongetdefresresult
2条回答

未知结构方法

假设您只知道所需的键名,而不知道其他任何内容,则可以采用这种方法

def find_key(data, key_name):
    for k,v in data.items():
        if k==key_name:
            print(k)
            break
        elif isinstance(v, dict):
            find_key(data[k], key_name)
        else:
            continue

这将在字典中查找您的密钥,无论它放置得有多深

已知结构方法

签出this answer

SimpleNamespaceobject_hook是非常有价值的

对于dictionary对象,可以使用多次索引来访问嵌套元素

因此,对于字典对象:

out = {"rates":{"CZK":25.738},"base":"EUR","date":"2021-02-09"}

如果需要CZK键的值,则可以直接使用:

res = out["rates"]["CZK"]

相关问题 更多 >