使用PeeW将Unicode字符串存储到SQLite数据库

2024-10-01 02:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

与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处理字符串序列化的奇怪错误有关?在


Tags: the数据字符串脚本数据库url标题视频
1条回答
网友
1楼 · 发布于 2024-10-01 02:24:36

Peewee对CharFieldTextField都使用unicode,这意味着模型中存储的任何值都将转换为Python unicode对象(Py2中的unicode,Py3中的str)。在

数据库驱动程序(sqlite3psycopg2,等等)通常处理将unicode转换为适当的编码。在

我不确定你描述的bug是什么,但是也许你可以共享一些代码来复制它。不过,我可以告诉你,peewee的unicode处理已经过测试,可以正常工作。在

相关问题 更多 >