我试图反序列化一个json,这是一个有效的格式w.r.to,杨模型定义的。这个例子是在pyangbind文档中给出的。但是json格式与我在这里粘贴的有点不同。
https://github.com/robshakir/pyangbind/tree/master/docs/example/simple-serialise
杰森:
{
"a-container": {
"a-value": 8
},
"a-list": [
{
"the-key": "entry-one"
},
{
"the-key": "entry-two"
}
]
}杨:
module simple_serialise {
yang-version "1";
namespace "http://rob.sh/yang/examples/ss";
prefix "ss";
container a-container {
leaf a-value {
type int8;
}
}
list a-list {
key 'the-key';
leaf the-key {
type string;
}
}
}我试着用以下方法进行反序列化:
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'发布于 2019-04-23 13:19:48
Pyangbind期望字典中的键作为您在模型中给出的' 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')https://stackoverflow.com/questions/51936122
复制相似问题