import sqlite3
class class1:
def __init__(self):
self.print1()
def print1(self):
con = sqlite3.connect('mydb.sqlite')
cur = con.cursor()
cur.execute("select fname from tblsample1 order by fname")
ar=cur.fetchall()
print(ar)
class1()
给出如下所示的输出
[(u'arun',), (u'kiran',), (u'kulku',), (u'sugu',)]
我需要从数组中删除你,我需要输出如下所示
['arun', 'kiran', 'kulku', 'sugu']
答案 0 :(得分:23)
如果您需要将从sqlite数据库检索到的字符串作为UTF-8而不是Unicode返回,请使用text_factory propery相应地设置连接:
import sqlite3
class class1:
def __init__(self):
self.print1()
def print1(self):
con = sqlite3.connect('mydb.sqlite')
con.text_factory = str
cur = con.cursor()
cur.execute("select fname from tblsample1 order by fname")
ar=cur.fetchall()
print(ar)
class1()
详情请见: http://docs.python.org/library/sqlite3.html#sqlite3.Connection.text_factory
在你的琴弦前面照顾“你”。然后,您必须将元组列表转换为列表:
ar=[r[0] for r in cur.fetchall()]
答案 1 :(得分:10)
u
前缀表示该字符串是Unicode字符串。如果您确定该字符串是基本的ASCII字符串,则可以将unicode字符串转换为具有简单str()
的非unicode字符串。
示例:
unicode_foo = u"foo"
print unicode_foo
>>> u"foo"
print str(unicode_foo)
>>> "foo"
在你的情况下,使用元组列表,你必须使用python列表理解这样做:
ar = [[str(item) for item in results] for results in cur.fetchall()]
其中results
是fetchall
返回的元组列表,而item
是元组的成员。
答案 2 :(得分:2)
你告诉你这些是unicode字符串。以您指定的格式打印元组列表:
>>> myformat="['%s']"%"', '".join([t[0] for t in ar])
>>> print myformat
['arun', 'kiran', 'kulku', 'sugu']
编辑:// 使用u的KIRAN示例和结果集中的
>>> ar=[(u'u',), (u'u',), (u',,,u,,u,',)]
>>> myformat="['%s']"%"', '".join([t[0] for t in ar])
>>> print myformat
['u', 'u', ',,,u,,u,']
答案 3 :(得分:0)
我只需添加此行即可使用
conn.text_factory = str