我在python keyring中存储一个列表。但是当我检索它时,它会被转换为unicode
import keyring
c=[]
f=[]
c.append("ian")
c.append("ned")
c.append("stark")
print c
a="5555"
keyring.set_password(a,"internal",c)
d= keyring.get_password(a,"internal")
print d[0]
d = unicode:['harish','ravi','kisan']
c = ['harish','ravi','kisan'] d [0]的值是“[”而不是“ian” 类似地,d [1]是“i”不是“ned”。 我想把d列为类似c的列表。
答案 0 :(得分:2)
使用ast.literal_eval
。它会将字符串解释为Python代码,但安全。
示例:
>>> import ast
>>> l = ast.literal_eval("['hello', 'goodbye']")
>>> l
['hello', 'goodbye']
>>> type(l)
<type 'list'>
如果您获得的字符串无法解释为有效的Python,那么您将获得ValueError
。如果是这种情况,您需要向我们展示您的输出结果,以确定正确的解决方案。
答案 1 :(得分:0)
使用Json解析输出:
import json
import keyring
c=[]
f=[]
c.append("ian")
c.append("ned")
c.append("stark")
print c
a="5555"
keyring.set_password(a,"internal",c)
d= json.loads(keyring.get_password(a,"internal"))
print d[0]