我有一个unicode对象列表names
,我试图创建一个新列表parsed_names
,以便将具有单个名称的对象转换为字符串并将对象转换为名单被转换成字符串列表:将unicode对象列表转换为字符串列表
names = [u'Johnny', u'["Tamir", "Josh"]', u'Brad']
parsed_names = ['Johnny', ['Tamir', 'Josh'], 'Brad']
下面的代码做的伎俩,但我宁愿不捉,以防别的错误(ValueError: malformed string
)当中去错了:
import ast
names = [u'Johnny', u'["Tamir", "Josh"]', u'Brad']
parsed_names = []
for n in names:
try:
parsed_names.append(ast.literal_eval(name))
except ValueError:
parsed_names.append(str(name))
print parsed_names
# ['Johnny', ['Tamir', 'Josh'], 'Brad']
注意:我的最后goa我将生成一个扁平列表(['Johnny', 'Tamir', 'Josh', 'Brad']
),但我已经有了这个代码,我想这一步必须先采取。
然后代码赢得' t一点也不工作 –
@PatrickHaugh他首先评估字符串,这样看起来像列表的字符串将被评估为列表。没有干净评估的所有东西都将保持为字符串。 – onlynone
您将通过评估每个字符串来解决问题。如果某人的姓名是“True”,那么您将会将布尔值“True”添加到您的最终列表中。任何匹配内建或保留字的“名称”都会有问题。 – onlynone