Python 无法使用pyangbind json解码器将json反序列化为yang
我正在尝试将一个json反序列化,它是一种有效的格式w.r.到定义的yang模型。pyangbind文档中给出了此示例。但是json格式与我在这里粘贴的有点不同 JSON: 杨: 我试图反序列化:Python 无法使用pyangbind json解码器将json反序列化为yang,python,Python,我正在尝试将一个json反序列化,它是一种有效的格式w.r.到定义的yang模型。pyangbind文档中给出了此示例。但是json格式与我在这里粘贴的有点不同 JSON: 杨: 我试图反序列化: from pyangbind.lib import pybindJSON from lib import simple_serialise s = '''{ "a-container": { "a-value": 8 }, "a-list": [
from pyangbind.lib import pybindJSON
from lib import simple_serialise
s = '''{
"a-container": {
"a-value": 8
},
"a-list": [
{
"the-key": "entry-one"
},
{
"the-key": "entry-two"
}
]
}'''
sip = pybindJSON.loads(s, simple_serialise, 'simple_serialise')
当我尝试反序列化时,出现以下错误
Traceback (most recent call last):
File "/Users/joshisk/PycharmProjects/tapi-pyang/src/main.py", line 38, in <module>
sip = pybindJSON.loads(di1, simple_serialise, 'simple_serialise') #type: simple_serialise.simple_serialise
File "/anaconda3/lib/python3.6/site-packages/pyangbind/lib/pybindJSON.py", line 58, in loads
path_helper=path_helper, extmethods=extmethods, overwrite=overwrite)
File "/anaconda3/lib/python3.6/site-packages/pyangbind/lib/serialise.py", line 302, in load_json
key_order = d[key].keys()
AttributeError: 'list' object has no attribute 'keys'
回溯(最近一次呼叫最后一次):
文件“/Users/joshik/PycharmProjects/tapi-pyang/src/main.py”,第38行,在
sip=pybindJSON.load(di1,simple_serialise,'simple_serialise')#类型:simple_serialise.simple_serialise
加载文件“/anaconda3/lib/python3.6/site packages/pyangbind/lib/pybindJSON.py”,第58行
path\u helper=path\u helper,extmethods=extmethods,overwrite=overwrite)
文件“/anaconda3/lib/python3.6/site packages/pyangbind/lib/serialise.py”,第302行,在load_json中
key_order=d[key].key()
AttributeError:“列表”对象没有属性“键”
Pyangbind需要一个字典,其中key是您在模型中给出的“key”值
list a-list {
key 'the-key';
在您的情况下,“键”的值
from pyangbind.lib import pybindJSON
from lib import simple_serialise
s = '''{
"a-container": {
"a-value": 8
},
"a-list": {
"entry-one": {
"the-key": "entry-one"
},
"entry-two": {
"the-key": "entry-two"
}
}
}'''
sip = pybindJSON.loads(s, simple_serialise, 'simple_serialise')
“但是json格式与我在这里粘贴的有点不同。”为什么不粘贴有问题的代码呢?我添加了更多信息。谢谢
list a-list {
key 'the-key';
from pyangbind.lib import pybindJSON
from lib import simple_serialise
s = '''{
"a-container": {
"a-value": 8
},
"a-list": {
"entry-one": {
"the-key": "entry-one"
},
"entry-two": {
"the-key": "entry-two"
}
}
}'''
sip = pybindJSON.loads(s, simple_serialise, 'simple_serialise')