python 解析json

解析科大讯飞 语音识别 返回的语义结果

返回的json数据

{
	"code": "0",
	"data": [{
		"sub": "iat",
		"text": {
			"sn": 1,
			"ls": false,
			"bg": 0,
			"ed": 0,
			"ws": [{
				"bg": 1,
				"cw": [{
					"sc": 0,
					"w": "订"
				}]
			}, {
				"bg": 1,
				"cw": [{
					"sc": 0,
					"w": "今天"
				}]
			}, {
				"bg": 1,
				"cw": [{
					"sc": 0,
					"w": "中午"
				}]
			}, {
				"bg": 1,
				"cw": [{
					"sc": 0,
					"w": "十"
				}]
			}, {
				"bg": 1,
				"cw": [{
					"sc": 0,
					"w": "二"
				}]
			}, {
				"bg": 1,
				"cw": [{
					"sc": 0,
					"w": "点"
				}]
			}, {
				"bg": 1,
				"cw": [{
					"sc": 0,
					"w": "的"
				}]
			}, {
				"bg": 1,
				"cw": [{
					"sc": 0,
					"w": "闹钟"
				}]
			}]
		}
	}, {
		"sub": "iat",
		"text": {
			"sn": 2,
			"ls": true,
			"bg": 0,
			"ed": 0,
			"ws": [{
				"bg": 0,
				"cw": [{
					"sc": 0,
					"w": ""
				}]
			}]
		}
	}, {
		"sub": "nlp",
		"intent": {}
	}, {
		"sub": "nlp",
		"intent": {
			"answer": {
				"text": "好的,今天中午十二点我会提醒您"
			},
			"dialog_stat": "dataInvalid",
			"rc": 0,
			"save_history": true,
			"semantic": [{
				"intent": "CREATE",
				"slots": [{
					"name": "datetime",
					"normValue": "{\"datetime\":\"2018-06-12T12:00:00\",\"suggestDatetime\":\"2018-06-12T12:00:00\"}",
					"value": "今天中午十二点"
				}, {
					"name": "name",
					"value": "clock"
				}]
			}],
			"service": "scheduleX",
			"sid": "ara00179888@dx15c20e7aa62d000100",
			"state": {
				"fg::scheduleX::default::clockFinished": {
					"datetime.INTERVAL": "1",
					"datetime.date": "1",
					"datetime.time": "1",
					"name": "1",
					"operation": "1",
					"state": "clockFinished"
				}
			},
			"text": "订今天中午十二点的闹钟",
			"used_state": {
				"datetime.INTERVAL": "1",
				"datetime.date": "1",
				"datetime.time": "1",
				"name": "1",
				"operation": "1",
				"state": "clockFinished",
				"state_key": "fg::scheduleX::default::clockFinished"
			},
			"uuid": "atn02d2fe4a@dx00070e7aa62da11001"
		}
	}],
	"desc": "success",
	"sid": "ara00179888@dx15c20e7aa62d000100"
}

解析出 answer 和datetime


def GetAnswer():
    r = requests.post(URL, headers=buildHeader(), data=readFile(FILE_PATH))
    print( r.content)
    text = json.loads(r.content)
    intent=''
    normValue=''
    semantic=''
    semantic_slots=''
    semantic_intent = ''
    for item in text['data']:
        if item.get("intent") != None:
            intent = item.get("intent")
            #break
    if not intent:
        return
    #遍历 semantic 数组
    for item_sem in intent['semantic']:
        if item_sem.get("slots")!=None:
            semantic_slots=item_sem.get("slots")
        if item_sem.get("intent") != None:
            semantic_intent=item_sem.get("intent")
    #遍历slots 数组
    for item_slot in semantic_slots:
        if item_slot.get("normValue")!=None:
            normValue=item_slot.get("normValue")
    answer = intent["answer"]
    dicValue=eval(normValue)
    datatime=dicValue['datetime']
    suggestDatetime=dicValue['suggestDatetime']
    re_answer=answer["text"]
    #打印解析结果
    print re_answer
    print datatime
    print suggestDatetime
    return re_answer

json越来越流行,通过python获取到json格式的字符串后,可以通过eval函数转换成dict格式:

>>> a='{"name":"yct","age":10}'

>>> eval(a)
{'age': 10, 'name': 'yct'}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python解析JSON的过程非常简单。可以使用`json`模块中的`load()`函数将JSON数据加载到Python对象中。例如,可以使用以下代码将JSON文件`united_states.json`加载到Python对象中: ```python import json with open('united_states.json') as f: data = json.load(f) print(type(data)) ``` 这将打印出`data`的类型,即JSON数据转换后的Python对象类型。\[1\] 另外,还可以使用`json.loads()`函数将JSON字符串解析Python对象。例如,可以使用以下代码将JSON字符串解析Python对象: ```python import json json_str = '{"id": "001", "name": "李华", "date": "20220115"}' data = json.loads(json_str) print(data) ``` 这将打印出解析后的Python对象。\[2\] 需要注意的是,Python对象必须符合JSON的语法规则才能成功解析JSON对象。例如,字典和列表都可以转换为JSON对象。\[3\] #### 引用[.reference_title] - *1* *3* [如何用Python解析JSON数据](https://blog.csdn.net/candice931020/article/details/121033902)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [python解析JSON数据](https://blog.csdn.net/weixin_48964486/article/details/122515225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值