【发布时间】:2015-03-20 12:43:39
【问题描述】:
我将用户的电子邮件存储在数据库中,如下所示。
['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 而不是列表。
【问题讨论】:
-
SQL 查询返回一个列表?预期的输出是什么?
-
sql 查询返回一个记录列表,我还通过
print row[2]对其进行了检查,它打印了我上面显示的所有电子邮件列表。你可以在代码中看到它说它是字符串。 -
@MTaqi:
repr(row[2])产生了什么? -
无论如何,
json.dumps()然后json.loads()将不起作用,即使该行包含某种 JSON 数据。 -
@MTaqi:使用
json.dumps(something)会生成something的JSON 编码,然后再使用json.loads()对其进行解码。您刚刚编码为 JSON,然后再次解码该编码。唯一可以实现的是您测试一个字符串是否可以进行 JSON 编码(可以),结果是一个 Unicode 字符串,其内容与您开始时的内容相同。