将String转换为已经是列表格式的python列表

时间:2015-03-20 12:43:40

标签: python json list unicode

我将用户的电子邮件存储在数据库中,如下所示。

['abc@gmai.com','abc@gmail.com','abc@gmail.com']

我必须逐个收到所有用户的每封电子邮件。查询后我写了下面的代码。

    cur.execute("sql query")
                rows = cur.fetchall()
                for row in rows:
                    print row[2]
                    print type(row[2])
                    emails = json.loads(json.dumps(row[2]))
                    print type(emails)

<type 'str'>
<type 'unicode'>

它将其转换为Unicode而不是列表。

1 个答案:

答案 0 :(得分:2)

您的row[2]是一个字符串。要将其转换为列表,您可以使用ast.literal_eval

In [29]: text = "['abc@gmai.com','abc@gmail.com','abc@gmail.com']"

In [30]: import ast

In [31]: ast.literal_eval(text)
Out[31]: ['abc@gmai.com', 'abc@gmail.com', 'abc@gmail.com']

In [32]: type(ast.literal_eval(text))
Out[32]: list