【发布时间】:2013-01-14 16:51:43
【问题描述】:
我正在尝试从文件中读取元组的字符串表示形式,并将元组添加到列表中。这是相关代码。
raw_data = userfile.read().split('\n')
for a in raw_data :
print a
btc_history.append(ast.literal_eval(a))
这是输出:
(Decimal('11.66985'), Decimal('0E-8'))
Traceback (most recent call last):
File "./goxnotify.py", line 74, in <module>
main()
File "./goxnotify.py", line 68, in main
local.load_user_file(username,btc_history)
File "/home/unix-dude/Code/GoxNotify/local_functions.py", line 53, in load_user_file
btc_history.append(ast.literal_eval(a))
File "/usr/lib/python2.7/ast.py", line 80, in literal_eval
return _convert(node_or_string)
`File "/usr/lib/python2.7/ast.py", line 58, in _convert
return tuple(map(_convert, node.elts))
File "/usr/lib/python2.7/ast.py", line 79, in _convert
raise ValueError('malformed string')
ValueError: malformed string
【问题讨论】:
-
如果它是受信任的输入 - 你能评估它吗?
-
这就是我最初尝试的,它给了我 SyntaxError: unexpected EOF while parsing。这是受信任的输入。
-
这是烦人...
-
你有没有跟进它为什么给你那个 SyntaxError?通常,没有人会推荐您使用 eval(),但由于它是受信任的输入,因此这将是满足您需要的最简单方法。
-
查看我对类似问题的回答:stackoverflow.com/questions/15197673/…
标签: python parsing python-2.x abstract-syntax-tree representation