python json \ 转义问题
本帖最后由 WolfAvenue 于 2022-3-31 10:44 编辑如下json格式字符串,经过反序列,然后序列化,内容变了,如何保持格式不变 testJsonStr='{"title":"qer\sdfde"}'
testJsonStr=testJsonStr.replace('\\','@/')
testJson=json.loads(testJsonStr)
print(testJson)
testJson['title']=testJson['title'].replace('@/','\\')
newJsonStr=json.dumps(testJson,ensure_ascii=False)
print(newJsonStr)
运行结果:
{'title': 'qer@/sdfde'}
{"title": "qer\\sdfde"}
看懂了,但是我不会,坐等大神 只能在json序列化之后在替换了么{:301_971:} 你要保留什么样的格式,不懂你说的什么格式 grekevin 发表于 2022-3-31 10:55
你要保留什么样的格式,不懂你说的什么格式
第一句那个格式 {"title":"qer\sdfde"} 本帖最后由 用温柔将我杀死 于 2022-3-31 12:23 编辑
好东西学习了 WolfAvenue 发表于 2022-3-31 11:03
第一句那个格式 {"title":"qer\sdfde"}
{"title":"qer\sdfde"}这个字符串本来写的就有问题啊,python字符串中\是要转义的应该写成\\才是规范的
json.dumps()方法序列化成的json字符串肯定是要符合json规范的,里面的\是要转义的 你要是序列或反序列还是用pickle吧
import pickle
testpickleStr='{"title":"qer\sdfde"}'
testpickleStr=testpickleStr.replace('\\','@/')
print(testpickleStr)
testpickle=pickle.dumps(testpickleStr)
print(testpickle)
newpickleStr=pickle.loads(testpickle).replace("@/", "\\")
print(newpickleStr)
页:
[1]