我正在从具有 latin_1 字符集的 SQL Server 数据库中提取数据到具有 utf-8 字符集的 Greenplum/postgres 数据库中。我试图在插入之前立即转换字符串值,但是当我这样做时:
row=[i.decode('latin_1') for i in row]
row=[i.encode('utf-8') for i in row]
我收到一条错误消息,指出 decode 不是 int 类型的成员。这是有道理的,因为有整数值进来。但也有字符串。在我读过的其他此类帖子中,答案总是立即而响亮的'你应该总是知道什么类型会过来'。在很多方面我都会这样做,因为它是一个静态查询,但是为 i 定义一组值似乎非常笨拙,而且老实说难以维护,我想在其中为我编写的每个查询进行转换。在这里,类型测试似乎是干净、可封装和可重用的答案,不是吗?
有什么建议么?