与peewee一起创建一个简单的sqlite数据库,该数据库存储解析的MRSS提要中的项目,特别是视频url和视频标题。在
我编写了一个小的重复数据消除脚本,用于检查刚刚解析的URL和视频标题是否已经在数据库中。我注意到,当我向数据库传递URL字符串时,没有任何问题,重复数据消除工作正常。当我使用sqlitebrowser这样的应用程序浏览数据库中存储的url时,我看到没有Unicode编码的url,它们看起来像常规的旧字符串,没有u'
。在
但是,当我传递unicode视频标题时,就像这样:(u'Animals doing the strangest things',)
重复数据消除脚本没有“看到”数据库中的视频标题。解决方案是对video title对象做一个简单的转换,比如:videoName = str(videoName)
-但是,我不知道为什么现在这样做。当我使用sqlitebrowser浏览数据库中的videoName列时,我看到了视频名称,但是它们仍然是Unicode格式的,看上去和以前一样:(u'Animals doing the strangest things',)
你知道这到底是怎么回事吗?这是否与PeeWee处理字符串序列化的奇怪错误有关?在
Peewee对
CharField
和TextField
都使用unicode,这意味着模型中存储的任何值都将转换为Pythonunicode
对象(Py2中的unicode
,Py3中的str
)。在数据库驱动程序(
sqlite3
,psycopg2
,等等)通常处理将unicode转换为适当的编码。在我不确定你描述的bug是什么,但是也许你可以共享一些代码来复制它。不过,我可以告诉你,peewee的unicode处理已经过测试,可以正常工作。在
相关问题 更多 >
编程相关推荐