【发布时间】:2012-02-14 01:38:19
【问题描述】:
我有一个 csv 文件被读入 python,然后我将阅读器保存为一个数组(我猜)。
然后我将 csv 文件结果与一些 Oracle db 结果进行比较:
readerSetSAP = []
readerSAP = csv.reader(StringIO.StringIO(request.POST['sap'].value),dialect=csv.excel)
readerSetSAP.extend(readerSAP)
empsTbl = meta.Session.query(model.Person).all();
然后使用嵌套循环进行比较:
if i.userid != currEmp[0].strip():
updated = True
print "userid update"
问题是,我经常收到警告:
eWarning: Unicode unequal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
所以我的问题是:
在 Python 中比较这种类型的字符串最可靠的方法是什么?
【问题讨论】:
-
你能举一个出现警告的例子吗?我的第一个建议是你必须确定两个参数是否同样编码。所以你需要知道输入数据是如何编码的,才能正确地转换成unicode。
-
您遗漏了一些相关线索。您使用什么模块来读取 Oracle 数据库——“meta.Session.query”指的是什么?您的循环代码如何设置 I 和 currEmp?提供 currEmp[0] 的 DB 字段的类型是什么?
-
查看这个关于如何在 Python 中理解 unicode 的答案:stackoverflow.com/a/1818326/244672希望这会有所帮助。