将文件路径替换为文件内容

时间:2017-03-03 15:00:15

标签: python json regex

我有一个json文件,里面有一堆文件路径。我想编写一个脚本,用路径指向的文件内容替换所有这些文件路径。

例如,有一个文件:

{
    "a": "stuff",
    "b: {
       "body": "/stack/over/flow/file.json"
    },
    "c": {
        "b": "stuff",
        "body": "here is some plain text"
    }
}

然后文件/stack/over/flow/file.json为:

{
    "another": "json"
}

并且输出文件将用该文件的内容替换/stack/over/flow/file.json。此外,因为它是一个json文件,我需要为它做适当的转义。

所以我真的需要两件事:

  1. 用文件内容替换文件路径。我认为正则表达式在这里最有用。

  2. 将正确的转义添加到json,以便它可以作为另一个json的主体发送。我正在考虑使用pythons json.dumps。

  3. 如果有更好的方法,或者您有任何其他建议,请告诉我。

1 个答案:

答案 0 :(得分:0)

您应该阅读json文件,解析它(json.load()),并接收结构(字典,列表,字符串或数字)。这个结构需要树遍历(我为此提出了一个递归函数),并且对于每个找到的叶子,它类似于到另一个文件的链接,递归地执行相同的操作,并用计算的内容替换链接。

并祈祷你没有循环依赖! ; - ))