Use literal_eval from the ast module:
>>> import ast
>>> ast.literal_eval("['KYS_Q5Aa8', 'KYS_Q5Aa9']")
['KYS_Q5Aa8', 'KYS_Q5Aa9']
Unlike eval
, literal_eval is safe to use on user strings or other unknowns string sources. It will only compile strings into basic python data structures -- all others fail.
Alternatively, if your string is just like that (ie, no embedded commas or meaning to parse inside the sub quoted strings) you could coerce split to do what you want do too:
>>> mystring = "['KYS_Q5Aa8', 'KYS_Q5Aa9']"
>>> [e.strip("' ") for e in mystring.strip('[] ').split(',')]
['KYS_Q5Aa8', 'KYS_Q5Aa9']
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…