2024-05-08 11:30:33 发布
网友
如何转换此列表:
list = [u"[u'book1', u'book2', u'book3']"]into this list:
收件人:
我试过了:
n = ast.literal_eval(list)
但我有个错误:
ValueError: malformed string
如果没有“u”,我还能做些什么来更改这个列表?在
ast.literal_eval将节点或字符串作为参数。 单子不是。示例列表中的第一个值是字符串, 你可以通过:
ast.literal_eval
alist = [u"[u'book1', u'book2', u'book3']"] ast.literal_eval(alist[0]) # produces: ['book1', 'book2', 'book3']
您得到的是malformed string,因为literal_eval需要一个字符串,但您将传递给它一个列表。看看最外层的分隔符。对于字符串,它们应该是匹配的引号,但是你有方括号。在
malformed string
literal_eval
>>> mylist = [u"[u'book1', u'book2', u'book3']"] >>> ast.literal_eval(mylist.pop()) [u'book1', u'book2', u'book3'] # in Python 2 ['book1', 'book2', 'book3'] # in Python 3
如果您知道列表的数据是安全的,可以使用eval():
eval()
>>> a = [u"[u'book1', u'book2', u'book3']"] >>> eval(a[0]) ['book1', 'book2', 'book3']
否则,最安全的选择是使用literal_eval来自ast模块的literal_eval:
ast
ast.literal_eval
将节点或字符串作为参数。 单子不是。示例列表中的第一个值是字符串, 你可以通过:您得到的是
malformed string
,因为literal_eval
需要一个字符串,但您将传递给它一个列表。看看最外层的分隔符。对于字符串,它们应该是匹配的引号,但是你有方括号。在如果您知道列表的数据是安全的,可以使用
eval()
:否则,最安全的选择是使用
^{pr2}$literal_eval
来自ast
模块的literal_eval
:相关问题 更多 >
编程相关推荐