在python中,如何在不破坏JSON结构的情况下解析具有值正则表达式的JSON字符串



我的应用程序收到一个在其 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 个斜杠和一个斜杠的那个。

由于数据是正则表达式,我希望它在变量中以原始格式出现。

我怎样才能得到它?

这里的问题是您的 json 未正确编码,因此您在解码它时遇到问题。 这是一个先有鸡还是先有蛋的问题。

>>> import json
>>> r = r'^1.0(.d+)?$'
>>> print r
^1.0(.d+)?$
>>> print json.dumps(r)
"^1\.0(\.\d+)?$"

在将 json 传递给您之前,您需要调查它的创建方式(如果您在那里控制(,或者联系生成它的人。

最新更新