0

我在 python 密钥环中存储了一个列表。但是当我检索它时,它被转换为 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 的列表。

4

2 回答 2

2

使用ast.literal_eval. 它将字符串解释为 Python 代码,但安全。

例子:

>>> import ast
>>> l = ast.literal_eval("['hello', 'goodbye']")
>>> l
['hello', 'goodbye']
>>> type(l)
<type 'list'>

如果你得到的字符串不能被解释为有效的 Python,那么你会得到一个ValueError. 如果是这种情况,您需要向我们展示您的输出结果,以确定正确的解决方案。

于 2014-02-13T18:10:32.530 回答
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]
于 2014-02-13T18:12:32.327 回答