如果键值匹配,则解析JSON数据并在Python中打印键值
我对JSON解析非常陌生。以下是我的JSON:如果键值匹配,则解析JSON数据并在Python中打印键值,python,json,parsing,Python,Json,Parsing,我对JSON解析非常陌生。以下是我的JSON: [ { "description": "Newton", "exam_code": { "date_added": "2015-05-13T04:49:54+00:00", "description": "Production", "exam_tags": [ {
[
{
"description": "Newton",
"exam_code": {
"date_added": "2015-05-13T04:49:54+00:00",
"description": "Production",
"exam_tags": [
{
"date_added": "2012-01-13T03:39:17+00:00",
"descriptive_name": "Production v0.1",
"id": 1,
"max_count": "147",
"name": "Production"
}
],
"id": 1,
"name": "Production",
"prefix": "SA"
},
"name": "CM"
},
{
"description": "Opera",
"exam_code": {
"date_added": "2015-05-13T04:49:54+00:00",
"description": "Production",
"test_tags": [
{
"date_added": "2012-02-22T12:44:55+00:00",
"descriptive_name": "Production v0.1",
"id": 1,
"max_count": "147",
"name": "Production"
}
],
"id": 1,
"name": "Production",
"prefix": "SA"
},
"name": "OS"
}
]
这里我试图找出名称值是否为CM打印描述值
如果名称值为操作系统,则打印说明值
请帮助我了解如何进行JSON解析?考虑到您已经从某个地方读取了JSON字符串,无论是文件、stdin还是任何其他源 实际上,您可以通过执行以下操作将其反序列化为Python对象:
import json
# ...
json_data = json.loads(json_str)
其中json\u str
是要解析的json字符串
在您的情况下,json\u str
将被反序列化为Python列表
,因此您可以像通常使用列表
一样对其执行任何操作
当然,这包括迭代元素:
for item in json_data:
if item.get('name') in ('CM', 'OS'):
print(item['description'])
如您所见,json_data
中的项目已反序列化为dict
,因此您可以使用dict
操作访问实际字段
笔记 您还可以直接从源代码反序列化JSON,前提是您可以访问文件处理程序/描述符或流:
# Loading from a file
import json
with open('my_json.json', 'r') as fd:
# Note that we're using json.load, not json.loads
json_data = json.load(fd)
在Python中处理JSON,光是stackoverflow就有上百个好问题。在获得合格的帮助之前,您必须进行更多的研究,并从自己的尝试开始。如果您对这两种情况都做相同的操作,为什么需要
if
?我只需要1 if条件。
# Loading from stdin
import json, sys
json_data = json.load(sys.stdin)