我正在使用我的 python 脚本从 sqlite3 数据库中为 xbmc 媒体应用程序提取数据。
我可以看到,在我的代码中,它将使用 unicode 对象提取数据,其中我将拥有字符串 (u'
、u
和 L
.
我想将它转换回从 unicode 对象到 utf8 的普通字符串。
代码如下:
programs = None
daysLimit = 14
start = datetime.datetime.now()
end = start + datetime.timedelta(days = daysLimit)
cur.execute('SELECT channel, title, start_date, stop_date FROM programs WHERE channel')
programs = cur.fetchall()
print(programs)
cur.close()
这是 xbmc 日志:
03:49:03 T:3628 NOTICE: [(u'101 ABC FAMILY ', u'The Middle - The Ditch',
20140520170000L, 20140520173000L), (u'101 ABC FAMILY ', u'The Goonies',
20140520173000L, 20140520200000L), (u'101 ABC FAMILY ', u'Pirates of the Caribbean: On Stranger Tides',
20140520200000L, 20140520230000L), (u'101 ABC FAMILY ', u'The 700 Club',
20140520230000L, 20140521000000L), (u'101 ABC FAMILY ', u'The Fresh Prince of Bel-Air - Day Damn One',
20140521000000L, 20140521003000L), (u'101 ABC FAMILY ', u'The Fresh Prince of Bel-Air - Lucky Charm',
20140521003000L, 20140521010000L), (u'101 ABC FAMILY ', u'The Fresh Prince of Bel-Air - The Ethnic Tip',
20140521010000L, 20140521013000L), (u'101 ABC FAMILY ', u'The Fresh Prince of Bel-Air - The Young and the Restless',
20140521013000L, 20140521020000L), (u'101 ABC FAMILY ', u'Summer Sexy With T25!',
20140521020000L, 20140521023000L), (u'101 ABC FAMILY ', u'Paid Programming',
20140521023000L, 20140521030000L)
我想忽略字符串 (u'
、u
和 L
所以我想让它看起来像这样:
'101 ABC FAMILY ', 'The Middle - The Ditch', 20140520170000, 20140520173000,
'101 ABC FAMILY ', 'The Goonies', 20140520173000, 20140520200000,
'101 ABC FAMILY ', 'Pirates of the Caribbean: On Stranger Tides', 20140520200000, 20140520230000,
'101 ABC FAMILY ', 'The 700 Club', 20140520230000, 20140521000000,
'101 ABC FAMILY ', 'The Fresh Prince of Bel-Air - Day Damn One', 20140521000000, 20140521003000,
and so on...
你能告诉我如何使用 python 2.6 版本将 unicode 对象转换为 utf8 吗?
请您参考如下方法:
L
后缀表示长整数。它们实际上与(短)整数相同;真的没有必要转换这些。只有它们的repr()
输出包含L
; 直接打印值或将其写入文件,不包括L
后缀。可以使用
unicode.encode()
方法将 Unicode 值编码为 UTF-8:encoded = unicodestr.encode('utf8')
你的不满在于这里的列表表示;您记录了所有行,Python 容器通过对每个值调用 repr()
来表示它们的内容。这些表示非常适合调试,因为它们的类型很明显。
这取决于您接下来如何处理这些值。在整个代码中使用 Unicode 通常是个好主意,并且只在最后一刻进行编码(写入文件、打印或通过网络发送时)。有很多方法可以为您处理。例如,打印将自动编码为您的终端编解码器。添加到 XML 文件时,大多数 XML 库都会为您处理 Unicode。等等