在字典/ json中获取键的类型

时间:2019-02-26 17:51:15

标签: python json python-3.x dictionary

我有一个想要解析的JSON响应。我想获得所有具有值字典的键,而不仅仅是一个字符串。

JSON:

[
    {
        "style": 7,
        "accessDate": "2017-06-16T12:52:18Z",
        "name": "Starbucks",
        "location": {
            "latitude": 40.767372,
            "longitude": -111.891367,
        },
        "abstract": {
            "type": 5
        }
    }
]

基本上,我想获取具有字典的每个键的列表(在本例中为locationabstract)。我尝试使用type(),但这只是返回一个字符串,因为……显然。

for key in myjson:
    print(type(key))

除了找到这些内容在json中可能存在的位置以外,还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

您可以使用isinstance来查看值是否是类的实例

for k, v in d.items():
    if isinstance(v, dict):
        print(k)

答案 1 :(得分:1)

使用isinstance

例如:

j = [
    {
        "style": 7,
        "accessDate": "2017-06-16T12:52:18Z",
        "name": "Starbucks",
        "location": {
            "latitude": 40.767372,
            "longitude": -111.891367,
        },
        "abstract": {
            "type": 5
        }
    }
]

for i in j:
    for key, value in i.items():
        if isinstance(value, dict):
            print(key)

输出:

location
abstract