【发布时间】:2017-10-16 17:55:01
【问题描述】:
有谁知道让 json.dumps 正确编码包含正则表达式的字符串的方法?或者,是否有另一种方法可以为不使用 json.dumps 的 JSON 有效负载编码数据来正确处理?
例如:
import json
MyString = 'regex "Network\sInformation:[\s\S]+?Workstation\sName:\t+(?<src_host>[^\r]+)"'
data = {}
data['MyString'] = MyString
data['date'] = '2017-09-18T11:28:06'
json_data = json.dumps(data)
print json_data
将生成:
{
"date": "2017-09-18T11:28:06",
"MyString": "regex \"Network\\sInformation:[\\s\\S]+?Workstation\\sName:\t+(?<src_host>[^\r]+)\""
}
但是,您会注意到 [^\r] 没有正确转义,应该是 [^\\r],当由 API 处理时会导致解析错误。
最后,我在这里构建的 JSON 有效负载将使用请求提交到 Web API,类似于:
requests.post(url, auth=(uname, passwd), data=json_data, headers=headers)
注意:我考虑过简单地创建一个函数,该函数发出一堆替换命令来自己手动编码,这是我目前的计划 B,但我希望那里已经有一个解决方案/模块,我可以利用来做到这一点。
【问题讨论】:
标签: python json regex python-requests