Json 不仅可用作 API 的通信工具,还可用作将运行程序配置为初始化的标记。
我在 json 模式中遇到了为了重用而使用引用的情况。
由于 json 模式是有效的 json,我曾期望 python json 库能够扩展引用。
$ cat test.json
{
"template":{
"a":"a",
"b":"b",
"pi":3.14
},
"value": { "$ref":"#/template"}
}
python -c "from json import load; fp = open(\"test.json\",\"r\"); print(load(fp))"
{'template': {'a': 'a', 'b': 'b', 'pi': 3.14}, 'value': {'$ref': '#/template'}}
Run Code Online (Sandbox Code Playgroud)
在 python 中扩展引用的最简单方法是什么,因为 python dicts 不能指向它们自身的其他部分(我认为)?
jsonref 是一个用于自动解引用 Python 的 JSON 引用对象的库(支持 Python 2.6+ 和 Python 3.3+)。
从文档:
from pprint import pprint
import jsonref
# An example json document
json_str = """{"real": [1, 2, 3, 4], "ref": {"$ref": "#/real"}}"""
data = jsonref.loads(json_str)
pprint(data) # Reference is not evaluated until here
{'real': [1, 2, 3, 4], 'ref': [1, 2, 3, 4]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2717 次 |
| 最近记录: |