如何删除JSON中的“转义斜线”?

问题描述

我需要删除转义序列。如何使用python做到这一点?

  • 当前结果
Traceback (most recent call last):
  File "c:/Users/SterlingTech/Desktop/javis folder/javis 1.0.py",line 215,in <module>
    os.startfile(os.path.join(songs_dir,music[no]))
TypeError: list indices must be integers or slices,not str
  • 整形后(我想得到这个)
"conv": "\"XXXXX\"",

解决方法

使用replace

conv = "\"XXXXX\""
conv = conv.replace("\"","")
,

您可以使用str.replace方法删除字符串。

'\"XXXXX\"'.replace("\"","") # returns 'XXXXX'

这里是使用str.replace()

的方法 ,

您可以使用json decoder

import json
x = {"conv": "\"XXXXX\""}
x['conv'] = json.loads(x['conv']) # sets conv to "XXXXX"
,

您需要在反斜杠上加倍,否则最终将无法解析为json,因为否则您将替换所有"字符并保留反斜杠:

s = s.replace('\\"','')
import json


d = {"conv": "\"XXXXX\""}
s = json.dumps(d)
print(s) # -> {"conv": "\"XXXXX\""}
s = s.replace('\\"','')
print(s) # -> {"conv": "XXXXX"}
print(json.loads(s)) # -> {'conv': 'XXXXX'}