在Python中的值内清理JSON(不需要的\和")

时间:2014-12-24 00:21:49

标签: python json escaping backslash data-cleansing

我的JSON文件如下所示:

"appInfo": {
    "name": "\fÞ\r ",
    "version": " a\\r ",
    "appName": "\fÞ\"",
    "appId": 1234
},

注意:

  • 我在值(中文,德文等)
  • 中重音了字符
  • 我上面显示的只是JSON记录的一部分
  • 文件中有多个json记录(1行中有1个JSON记录)

我必须做的事情:

  1. 从JSON值中删除所有\r \t \f
  2. 保留所有剩余的\完整无缺,但只有在它们尚未转义的情况下,才会逃脱它们之前再添加一个\
  3. 如果在未转义的值中有任何双引号,则它们也需要转义
  4. 请参阅下文,了解文件中的预期输出
  5. "appInfo": { "name": "Þ ", "version": " a\\ ", "appName": "Þ\"", "appId": 1234 },

    我必须为此编写一个Python脚本,任何指针都会有所帮助。

    谢谢!节日快乐

1 个答案:

答案 0 :(得分:0)

你的问题存在逻辑缺陷。

如果"\fÞ\r "必须变为"Þ ",那么" a\\r "必须变为" a\\r ",如果您想让所有实际\\保持一致。因为转发后的\(输入中为\\)在输出中变为\\r必须在输出中保持独立r 。这样就会给你" a\\r "

" a\\r "成为" a\\ "在这种情况下毫无意义。

我理解,对你来说,\\r意味着standalone \ then \r,但用正则表达式的语言来说,情况并非如此。它代之以escaped \,然后是独立(而不是转义)r