我有一个像这样的数据库查询,我在 Postgres 数据库上的 Python 中执行:
"Select * from my_tbl where big_string like '%Almodóvar%'"
但是,在我正在搜索的列Almodóvar
中表示为“ Almod\u00f3var
”,因此查询不返回任何内容。
我该怎么做才能使两个字符串匹配?宁愿Almodóvar
在 Python 端而不是数据库中的列上工作,但我很灵活。
评论提示的附加信息:
数据库使用 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%'"
查询仍然没有产生任何结果。我难住了。