Warum wird diese Zeichenfolge nicht mit der ast.literal_eval
Bekomme ich einen fehlerhaften string-Fehler.
Hier ist meine Prüfungen
>>> eval("'Hello:: '+'fdsfds'")
'Hello:: fdsfds'
>>> import ast
>>> ast.literal_eval("'Hello:: '+'fdsfds'")
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
ast.literal_eval("'Hello:: '+'fdsfds'")
File "C:\Python27\lib\ast.py", line 80, in literal_eval
return _convert(node_or_string)
File "C:\Python27\lib\ast.py", line 79, in _convert
raise ValueError('malformed string')
ValueError: malformed string
- Ich denke, ast prüft, ob es sein kann, exec würde ...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der
ast.literal_eval
docs:Verkettung mit
+
ist nicht enthalten innerhalb: es ist nicht eine wörtliche Ausdruck, es ist ein Aufrufstr.__add__
. Es ist der gleiche Grund1+1
oder"hello".upper()
würde nicht funktionieren.literal_eval
ist völlig nutzlos.