繁体   English   中英

在Python的JSON配置文件中包含目录路径的正确方法

[英]Correct way to include directory paths in a JSON config file for Python

我环顾四周,只找到将目录树写到JSON文件的答案-很好,但不能解决当前问题。 我正在寻找执行此操作的语法或针对我的整体问题的更好方法。

高级:我正在研究某些企业软件的Python包装,以使一些测试自动化。 理想情况下,我可以随代码附带一个配置文件,以便运行测试的人只需要担心配置文件,而不用担心代码本身。 我想在配置文件中包含目录路径,因为这些目录路径与正在运行代码的机器有关。 我希望与Python中存在的JSON字符串文字等效

r"This\Type\Of\Thing!"

这样我就可以简单地拥有以下内容:

{"relevant_paths": {
    "path1": r"C:\users\whatever\path",
    "path2": r"C:\useres\another\whatever\path\"
    }
}

可以将它们作为dict值访问,但是您已经知道了,但是没有。 同样,单引号对于我来说不能用作转义符,除非只是PyCharm抱怨并且我不明白为什么(很有可能)。

因此,有没有一种方法可以在JSON中包含目录路径,还是我应该重新考虑如何将其发布?

仅包括原始字符串。 JSON从未给我上述存储路径的问题,但是,JSON确实应按JSON规范的要求转义了路径中的反斜杠。

Python 3.4.9 (default, Aug 14 2018, 21:28:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> _tmp = {}
>>> _tmp['relevant_paths'] = {}
>>> _tmp['relevant_paths']['path1'] = r'C:\users\whatever\path',
>>> _tmp['relevant_paths']['path2'] = r'C:\useres\another\whatever\path'
>>> import json
>>> print(json.dumps(_tmp, indent=4))
{
    "relevant_paths": {
        "path2": "C:\\useres\\another\\whatever\\path",
        "path1": "C:\\users\\whatever\\path"
    }
}

RFC-7159

  1. 弦乐

    字符串的表示类似于C系列编程语言中使用的约定。 字符串以引号开头和结尾。 除必须转义的字符外,所有Unicode字符都可以放在引号内:引号, 反斜线和控制字符(U + 0000至U + 001F)。

(注意:反向固线符是一个反斜杠,必须使用正确格式的JSON进行转义。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM