我的应用程序以其JSON值获取带有正则表达式的请求。
{ "regex" : "^1\.0(\.\\d+)?$" }
我使用下面的代码来解析它:
parsedData = json.loads(requestData)
但由于非JSON字符,它失败了。
我尝试了很多方法,其中一个就是这个
Bease64编码和解码:
>>> s = '^1\.0(\.\\d+)?$'
>>> e = base64.b64encode('^1\.0(\.\d+)?$')
>>> e
'XjFcLjAoXC5cZCspPyQ='
>>> d = base64.b64decode(e)
>>> d
'^1\\.0(\\.\\d+)?$'
观察输出 - '^1\\.0(\\.\\d+)?$'
:添加了1个额外的斜杠。
显然现在无法区分具有2个斜杠和一个斜杠的那个。
由于数据是正则表达式,我希望它以原始格式存在于变量中。
我怎么能得到它?
答案 0 :(得分:1)
这里的问题是你的json没有正确编码,所以你在解码它时遇到了麻烦。这是一只鸡肉和鸡肉。鸡蛋问题。
>>> import json
>>> r = r'^1\.0(\.\d+)?$'
>>> print r
^1\.0(\.\d+)?$
>>> print json.dumps(r)
"^1\\.0(\\.\\d+)?$"
您需要调查json在传递给您之前是如何创建的(如果您在那里控制)或者与生成json的人联系。