簡體   English   中英

將作為列表的字符串轉換為正確的列表python

[英]convert a string which is a list into a proper list python

如何將這個列表字符串轉換為正確的列表?

mylist = "['KYS_Q5Aa8', 'KYS_Q5Aa9']"

我累了,但這不是我所期望的:

print mylist.split()
["['KYS_Q5Aa8',", "'KYS_Q5Aa9']"]

我想要這樣:

['KYS_Q5Aa8','KYS_Q5Aa9']

使用literal_evalAST模塊:

>>> import ast
>>> ast.literal_eval("['KYS_Q5Aa8', 'KYS_Q5Aa9']")
['KYS_Q5Aa8', 'KYS_Q5Aa9']

eval不同,literal_eval 可以安全地用於用戶字符串或其他未知字符串源。 它只會將字符串編譯成基本的 python 數據結構——所有其他的都失敗了。

或者,如果您的字符串就是這樣(即,沒有嵌入的逗號或在子引用的字符串中解析的意思),您也可以強制拆分來做您想做的事情:

>>> mystring = "['KYS_Q5Aa8', 'KYS_Q5Aa9']"
>>> [e.strip("' ") for e in mystring.strip('[] ').split(',')]
['KYS_Q5Aa8', 'KYS_Q5Aa9']

您可以使用 json 庫,它比 eval 更有效。

import json
mylist = "['KYS_Q5Aa8', 'KYS_Q5Aa9']"
mylist = json.loads(mylist.replace("'",'\"'))

Json 模塊會為您評估這一點

import json

mylist = '["KYS_Q5Aa8", "KYS_Q5Aa9"]'
arr = json.loads(mylist)

print(arr)
# ['KYS_Q5Aa8', 'KYS_Q5Aa9']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM