【发布时间】:2020-12-21 14:23:42
【问题描述】:
我有一个 JSON 字符串
json_str = '''
{"conversation_id": "314123790001", "first_agent_id": 85860001, "customer_id": 62483180001, "first_utterance_ts": "2020-08-18T15:37:04.826000+00:00", "first_utterance_text": "Wan indicator light", "first_intent_code": "TSMODEM", "first_intent_code_alt": "TSBOX", "final_intent_code": "TSWIFI", "intent_path": "TSMODEM,TSWIFI", "disambig_count": 0, "ftd_visit": true, "faq_id": null, "final_action_destination": null, "is_first_intent_correct": null, "issue_id": "314123790001", "first_rep_id": 85860001, "company_name": "spectrum-cable"}
'''
我使用了这个正则表达式命令;
_key = "intent_path"
values = re.findall(r'\"{}\"\s?:\s?\"?([^\,\"]+)\"?'.format(_key), json_str)
但是,我得到了一个结果“TSMODEM”。我的预期结果是“TSMODEM,TSWIFI”
我只想获得一个键的值(“intent_path”)。我想用正则表达式获取值。你能帮帮我吗?
【问题讨论】:
-
为什么使用正则表达式(对于结构化数据来说是个糟糕的选择)?你想解析所有字段还是只提取一个值?
-
"带有正则表达式,但不是 json python 库" - 你能详细说明原因吗?另外,你自己有没有尝试过?
-
你能解释一下为什么你不想使用 JSON 库吗?这是字面上他们唯一的目的。
-
因为我经常得到一个损坏的JSON字符串,所以我想使用正则表达式。
-
如果您经常收到损坏的 JSON,则正则表达式也可能会损坏。修复任何给你 JSON 的东西,或者如果它的第三方报告错误