python中的json引用提取

Deb*_*asu 5 python json

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 不能指向它们自身的其他部分(我认为)?

Hug*_*lle 7

JSON库不支持引用,但jsonref一样。

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)

  • 我必须给你..这是完美的答案!:) (3认同)