【发布时间】:2013-08-11 20:05:31
【问题描述】:
我有一个类似这样的数据库查询,我在 Postgres 数据库上用 Python 执行:
"Select * from my_tbl where big_string like '%Almodóvar%'"
但是,在我搜索 Almodóvar 的列中,表示为“Almod\u00f3var”,因此查询不返回任何内容。
如何使两个字符串匹配?更愿意在 Python 端使用 Almodóvar 而不是数据库中的列,但我很灵活。
cmets 提示的其他信息:
数据库使用 UTF-8。我正在查询的字段是从外部 API 获取的。数据作为 json 以 RESTfully 方式检索,然后在 json.dump 之后插入到数据库的文本字段中。
由于数据包含大量外来名称和字符,因此使用它一直是一系列与编码相关的难题。如果有一个灵丹妙药可以让这些数据与 Python 配合得很好,我将非常感激知道那是什么。
更新 2:
看起来是 json 编码让我感到困惑。
print json.dumps("Almodóvar")
产量
"Almod\u00f3var"
这是我在查看原始数据时看到的。但是,当我使用 json.dumps 来构造这个时:
"Select * from my_tbl where big_string like '%Almod\u00f3var%'"
查询仍然没有产生任何结果。我被难住了。
【问题讨论】:
标签: python json postgresql encoding