Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
清理Python中值中的JSON(不需要的\和“)_Python_Json_Escaping_Backslash_Data Cleaning - Fatal编程技术网

清理Python中值中的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 保留所有剩余的\完好无损,但仅当它们尚未转义时,才转义它们并在此之前再添加一

我的JSON文件如下所示:

"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需要简洁地解释。此外,感谢您对此进行调查!