Ich habe versucht, die Methode prettyIn
aus der Python-Bibliothek pyasn1.type.univ.BitString
zu verwenden.pyasn1.error.PyAsn1Error: Unbekannte Bit-ID
Diese Methode nimmt eine Zeichenfolge, aber was ich gebe, in der interaktiven Python-Shell löst die Ausnahme pyasn1.error.PyAsn1Error: Unknown bit identifier
. Ich suchte nach dieser Methode den Quellcode auf Google nach oben, und hier ist das, was ich gefunden habe:
def prettyIn(self, value):
r = []
if not value:
return()
elif isinstance(value, str):
if value[0] == '\'':
if value[-2:] == '\'B':
for v in value[1:-2]:
if v == '0':
r.append(0)
elif v == '1':
r.append(1)
else:
raise error.PyAsn1Error(
'Non-binary BIT STRING initializer %s' % (v,)
)
return tuple(r)
elif value[-2:] == '\'H':
for v in value[1:-2]:
i = 4
v = int(v, 16)
while i:
i = i - 1
r.append((v>>i)&0x01)
return tuple(r)
else:
raise error.PyAsn1Error(
'Bad BIT STRING value notation %s' % value
)
else:
for i in value.split(','):
j = self.__namedValues.getValue(i)
if j is None:
# THIS IS THE PROBLEMATIC LINE
raise error.PyAsn1Error(
'Unknown bit identifier \'%s\'' % i
)
if j >= len(r):
r.extend([0]*(j-len(r)+1))
r[j] = 1
return tuple(r)
elif isinstance(value, (tuple, list)):
r = tuple(value)
for b in r:
if b and b != 1:
raise error.PyAsn1Error(
'Non-binary BitString initializer \'%s\'' % (r,)
)
return r
elif isinstance(value, BitString):
return tuple(value)
else:
raise error.PyAsn1Error(
'Bad BitString initializer type \'%s\'' % (value,)
)
Hat jemand eine Ahnung, welche Art von String dieser Methode in nimmt? Diese Methode wird in einem Programm verwendet, das ich debuggen muss und kann nicht geändert werden.
Dank Ihrer Hilfe
Drummmer Kubuntu
Was bedeutet diese Antwort? Löst es das Problem, das OP hat? – luk2302
Ich denke, er fragte, welche Art von Zeichenfolge univ.BitString dauert, gab ich ihm ein Beispiel und einen Link, wo ich diese Informationen gefunden. – NoOne