如何从我的json转储中删除反斜杠?
我的python代码是:
@sio.on('donation')
def on_message(data):
y = json.loads(data)
with open('donate.json', 'w') as outfile:
json.dump(data, outfile)
如果我打印所有罚款和没有反斜杠!但如果我打开我的json文件,他看起来像这样:
"{\"id\":107864345,\"alert_type\":\"1\",\"is_shown\":\"0\",\"additional_data\":\"{\\\"randomness\\\":811}\",\"billing_system\":\"fake\",\"billing_system_type\":null,\"username\":\"test24\",\"amount\":\"1.00\",\"amount_formatted\":\"1\",\"amount_main\":1,\"currency\":\"USD\",\"message\":\"aaaaaa aaaa\",\"header\":\"\",\"date_created\":\"2022-12-17 21:57:10\",\"emotes\":null,\"ap_id\":null,\"_is_test_alert\":true,\"message_type\":\"text\",\"preset_id\":0}"
我尝试了所有我知道的
1条答案
按热度按时间lmvvr0a81#
您的代码,注解:
调用此函数时,将为它提供参数
data
,该参数是包含复杂对象的JSON编码的字符串。现在
data
仍然是相同的字符串,而y
是由data
表示的复杂对象。json.dump
接受一个数据对象并将其转换为字符串,使用两个参数,如这里所示,它将字符串写入文件,但尽管它的名称是data
,但它不是达拉对象,它是一个字符串,数据对象是y
。json.dump
会将任何具有JSON表示的Python对象转换为表示该对象的字符串,并且字符串可以用JSON表示。因此,在本例中,data
中的字符串被编码为JSON表示。这意味着字符串必须用双引号括起来,任何特殊字符都必须转义。但这并不是您想要的,您想要转储数据对象,并将其命名为
y
。可能会做你想做的事。
但是如果你只想写出这个字符串,那么把它转换成JSON再转换回字符串就没有什么意义了,你可以直接写出它:
然后您可以摆脱
y
(除非您在其他地方需要它)。