擅长:python、mysql、java
<p>你是说像这样的</p>
<pre><code>>>> import jsonref
>>> s = '''
... {
... "foo": {
... "$ref": "#/def/obj"
... },
... "def": {
... "obj": {
... "bar": "baz"
... }
... }
... }
... '''
>>> j = jsonref.loads(s)
>>> j
{u'foo': {u'bar': u'baz'}, u'def': {u'obj': {u'bar': u'baz'}}}
>>>
</code></pre>
<p>注意:从未使用过<code>jsonref</code>,甚至没有读过文档(!!!),因此我无法告诉<em>为什么</em>会出现此错误,但在文档中使用它的正确方法肯定有一些问题。但显然(从30秒的测试来看),<code>jsonref.loads()</code>已经应用了引用替换,并且<code>jsonref.JsonRef.replace_refs()</code>仅用于已经未序列化的对象,即:</p>
<pre><code>>>> s = '''
... {
... "foo": {
... "$ref": "#/def/obj"
... },
... "def": {
... "obj": {
... "bar": "baz"
... }
... }
... }
... '''
>>> import json
>>> decoded = json.loads(s) # so we get a plain python dict
>>> print(decoded)
{u'foo': {u'$ref': u'#/def/obj'}, u'def': {u'obj': {u'bar': u'baz'}}}
>>> final = jsonref.JsonRef.replace_refs(decoded)
>>> print(final)
{u'foo': {u'bar': u'baz'}, u'def': {u'obj': {u'bar': u'baz'}}}
</code></pre>