2017-03-14 19 views
0

Von dem ast docs ich die folgenden Informationen erhalten kann:ast.literal_eval (None) im Vergleich zu ast.literal_eval ('None')

sicher einen Ausdruck Knoten bewerten oder eine Unicode oder Latin-1 codierte Zeichenfolge einen Python enthält Literal- oder Containeranzeige. Die angegebene Zeichenfolge oder der Knoten darf nur aus den folgenden Python-Literalstrukturen bestehen: Strings, Zahlen, Tupel, Listen, Dicts, Booleans und None.

Daraus scheint, dass ast.literal_eval (None) funktionieren sollte.

Allerdings in Python 2.7 bekomme ich ValueError: fehlerhafte Zeichenfolge, wenn ich versuche, tun.literal_eval (keine). Das passiert nicht, wenn ich ast.literal_eval ('None') mache.

Kann jemand erklären warum? Ich habe mir die anderen Fragen zu StackOverflow über ast.literaleval und missformed string angeschaut, aber keine von ihnen behandelt dieses Problem.

Antwort

0

None ist weder ein String noch ein expression node, daher gibt es keinen Grund zu glauben, dass es für ast.literal_eval() gültiges Argument ist.

+0

Dank Ignacio, das half mir zu erkennen, wo ich falsch gelaufen bin. Ich habe die Dokumentation falsch gelesen. Insbesondere habe ich das Stück verpasst, das besagt, dass es sich um eine Zeichenfolge oder einen Knoten handeln muss. Danke, dass Sie mir geholfen haben und auf die naheliegende Antwort hingewiesen haben. –

Verwandte Themen