【发布时间】:2016-11-07 03:01:22
【问题描述】:
我需要将下面的 JSON 文件读入 Python,并保持正则表达式完整。我将在程序中使用正则表达式。
{
"Title": "Sample Compliance Check",
"Checks": {
"6": {
"+": ["^interfa.*", "^ip address 192\.168\.0"],
"description": "All interfaces with IP Address 192.168.0",
"action": "aaa new-model"
}
}
}
当我尝试使用 json 模块阅读此内容时,我收到了无效 json 的错误。
json.decoder.JSONDecodeError: Invalid \escape:
我尝试将反斜杠转换为双反斜杠
{
"Title": "Sample Compliance Check",
"Checks": {
"6": {
"+": ["^interfa.*", "^ip address 192\\.168\\.0"],
"description": "All interfaces with IP Address 192.168.0",
"action": "aaa new-model"
}
}
}
现在,它在 Python 中被读取,但我得到了带有双反斜杠的相同输出。
有什么方法可以在 JSON 中对正则表达式进行编码并像编码一样读取它(以原始正则表达式形式)?
【问题讨论】:
-
您显示的不是有效的 json。你能给出一个最小的工作示例和你得到的回溯吗?
-
这里是有效的部分: { "Title": "Sample Compliance Check", "Checks": { "6": { "+": ["^interfa.*", "^ ip address 192\\.168\\.0"], "description": "IP 地址为 192.168.0 的所有接口", "action": "aaa new-model" } } }
-
字符串
"^ip address 192\\.168\\.0"确实只有一个反斜杠。它们显示为双精度,以便 Python 可以将它们与转义字符区分开来,但它应该是您想要的正则表达式 ("^ip address 192\.168\.0") -
@syntonym 大概是一个较大文件的片段,但里面的东西是有效的。
-
@SuperBiasedMan 我认为问题可能在于如何读取 json。当然你是正确的,那是(可能)有效 json 文件的片段,但它本身不是有效的 json。