首页 > 解决方案 > 如何使用 Python 检查 JSON 字符串以获取列表?

问题描述

我正在从 JSON 格式的文件中读取字符串,所有这些都可能略有不同。具体如下示例:

无列表示例

[{"pricing-model":{"qualifier":{"and":{"all":{"equals":{"constant":...

列表示例

{"pricing-model":{"qualifier":{"or":{"and":[{"all":{"equals":{"constant":...

如果字符串包含列表,我需要以不同于没有列表的方式处理它。

示例代码

with open('my.jason') as f:
    data = json.load(f)
    for item in data:
        item = [item]
        # Get dictionary items
        item.get('pricing-model',{}).get('qualifier',{}).get('and',{}).get('all',{})\
                                    .get('equals',{}).get('constant',{})

        # Get list items
        item.get('pricing-model',{}).get('qualifier',{}).get('and',[])

但是如何验证 sting 是否包含一个列表,以便我可以运行正确的 .get?

标签: jsonpython-3.x

解决方案


if isinstance(item['pricing-model']['qualifier']['and'], list):
    # Get list items
    item.get('pricing-model',{}).get('qualifier',{}).get('and',[])
else:
    item.get('pricing-model',{}).get('qualifier',{}).get('and',{}).get('all',{})\
                                    .get('equals',{}).get('constant',{})

推荐阅读