清理Python中值中的JSON(不需要的\和“)
我的JSON文件如下所示:清理Python中值中的JSON(不需要的\和“),python,json,escaping,backslash,data-cleaning,Python,Json,Escaping,Backslash,Data Cleaning,我的JSON文件如下所示: "appInfo": { "name": "\fÞ\r ", "version": " a\\r ", "appName": "\fÞ\"", "appId": 1234 }, 注: 我在汉语、德语等语言中有重音符号 我上面显示的只是JSON记录的一部分 文件中有多个json记录1行中有1个json记录 我要做的是: 从JSON值中删除所有出现的\r\t\f 保留所有剩余的\完好无损,但仅当它们尚未转义时,才转义它们并在此之前再添加一
"appInfo": {
"name": "\fÞ\r ",
"version": " a\\r ",
"appName": "\fÞ\"",
"appId": 1234
},
注:
我在汉语、德语等语言中有重音符号
我上面显示的只是JSON记录的一部分
文件中有多个json记录1行中有1个json记录
我要做的是:
从JSON值中删除所有出现的\r\t\f
保留所有剩余的\完好无损,但仅当它们尚未转义时,才转义它们并在此之前再添加一个\即可
如果值中有任何未转义的双引号,则也需要转义
有关文件中的预期输出,请参见下文
应用信息:{
姓名:Þ,
版本:a\\\,
应用名称:Þ\,
appId:1234
},
我必须为此编写一个Python脚本,任何指针都会有帮助
谢谢!节日快乐你的问题有一个逻辑缺陷 如果\fÞ\r必须变为Þ,那么如果您想将所有实际的\r都放在a\之前,那么a\\r必须变为a\\r。因为这样,输入中的转义\being\\变成输出中的\\,并且r必须在输出中保持为一个独立的r。从而为您提供了一个\\r 在这种情况下,\\r变成\\毫无意义
我明白,\\r对您来说意味着独立\r\n但用正则表达式语言来说,情况并非如此。它的意思是转义\r独立,而不是转义r。我意识到我的评论令人困惑,抱歉。这是一个场景:我正在加载JSON格式的数据,如HDFS中所示,然后使用HIVE进一步处理它,现在,Hive将\r视为新行字符,即使在JSON值的双引号内,它也会出现在相应的位置。因此加载失败。例如,。\fÞ\r将失败,并且a\\r将被处理,因为'before r'被转义。我希望以一种方式清理所有记录,即使以删除某些字符为代价,我希望我是able需要简洁地解释。此外,感谢您对此进行调查!