json - 如何使用 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?
解决方案
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',{})
推荐阅读
- javascript - 如何像 mapStateToProps 类组件中的 useSelector 一样使用
- php - 试图获取非对象的属性“员工”(查看:/Applications/MAMP/htdocs/al-halal/resources/views/leave/allLeave.blade.php)
- django - Django 将额外数据传递给从 ModelViewSet serializer.save() 创建的 ModelSerializer
- java - 在 Quarkus 中使用 ResourceLoader
- html - Angular Html + Css = PDF,生成正确 PDF 的问题
- kotlin - Mockk - 模拟 javax.mail.Message - 获取 java.lang.VerifyError
- python-3.x - requirements.txt 中的库会安装自己的依赖项吗?
- android - RxJava 主题和可完成
- php - 为什么 array() 和 [] 在此示例中的行为不同
- node.js - 如何将带有-T的curl命令转换为节点js中的axios以将文件上传到azure datalake