如何在Python中正确转义JSON字符串中的双引号(“)

7dl7o3gd  于 2023-04-22  发布在  Python
关注(0)|答案(5)|浏览(148)

在json文件中,双引号被转义了,我不知道这里缺少了什么

import json
s = '{"title": "Fetching all Jobs from \"host_name\"."}'
j = json.loads(s)
print(j)

ValueError: Expecting , delimiter: line 1 column 36 (char 35)
htrmnn0y

htrmnn0y1#

你真的需要一根绳子吗?

s = {"title": 'Fetching all Jobs from "host_name".'}

# If you want a string, then here
import json
j = json.dumps(s)
print(j)

回收价值看起来是这样的

{"title": "Fetching all Jobs from \"host_name\"."}
>>> s2 = r'{"title": "Fetching all Jobs from \"host_name\"."}'
>>> json.loads(s2)
{'title': 'Fetching all Jobs from "host_name".'}
ncecgwcz

ncecgwcz2#

使用r字符串将帮助您转义json字符串中的内引号。

import json
s = r'{"title": "Fetching all Jobs from \"host_name\"."}'
j = json.loads(s)
print(j)

但我不确定这是否是最佳做法。

t0ybt7op

t0ybt7op3#

我知道有两种方法来处理它,第一种是逃避'':

s = '{"title": "Fetching all Jobs from \\"host_name\\"."}'

第二种是使用原始字符串文字:

s = r'{"title": "Fetching all Jobs from \"host_name\"."}'

注意字符串前面的'r'。

z4bn682m

z4bn682m4#

这个会帮你

>>> import json
>>> s= json.dumps('{"title": "Fetching all Jobs from \"host_name\"."}')
>>> j=json.loads(s)
>>> print(j)
{"title": "Fetching all Jobs from "host_name"."}
bprjcwpo

bprjcwpo5#

如果您以这种方式使用json,它可能适合您:

import json

 s = 'my string with "double quotes" and more'
json.dumps(s)
'"my string with \\"double quotes\\" and more"'

相关问题