这是我的asn1语法表示: -
MiepPullWtdr ::= [0] SEQUENCE
{
timeStamp [8] GeneralizedTime
}
我需要帮助使用pyasn1实现相同的功能。
这是我的代码段: -
from pyasn1.type import univ, namedtype, tag, char, namedval, useful
class MiepPullWtdr(univ.Sequence):
componentType = namedtype.NamedTypes(namedtype.NamedType('timeStamp', useful.GeneralizedTime().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))
)
miepPullWtdr = MiepPullWtdr()
miepPullWtdr.setComponentByName('timeStamp', '201103081200Z')
print(miepPullWtdr.prettyPrint())
我也试过了,
componentType = namedtype.NamedTypes(namedtype.NamedType('timeStamp',useful.GeneralizedTime().tagSet(tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))
两者都不起作用并且给出了一个奇怪的错误重新编写语法错误: -
miepPullWtdr = MiepPullWtdr()
^
SyntaxError: invalid syntax
我检查了逗号和括号。一切似乎都是正确的。
有任何帮助吗?感谢
答案 0 :(得分:0)
除了componentType
固定的悬空括号外,这是您的代码。适合我:
from pyasn1.type import univ, namedtype, tag, namedval, useful
class MiepPullWtdr(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('timeStamp', useful.GeneralizedTime().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))
)
miepPullWtdr = MiepPullWtdr()
miepPullWtdr.setComponentByName('timeStamp', '201103081200Z')
print(miepPullWtdr.prettyPrint())