我有一個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