Python3非utf8 pygeoip模块和howto解码

时间:2015-01-23 09:48:52

标签: python utf-8

我正在阅读Python3中的CSV,如下所示:

#!/usr/bin/env python3
import pygeoip
import csv

array = []
    with open('ips.log', 'rb') as csvfile:
        spamreader = csv.reader(csvfile, delimiter='\t')
        for row in spamreader:

            row.append(geo_isp.isp_by_addr(row[1]))
            array.append(row)

我现在的数据显示:

['owner': u'AS31334 Kabel Deutschland Vertrieb und Service GmbH', 'ip': '35.91.245.23', 'views': 6]

如何摆脱ISP名称前面的u?这是csv模块还是pygeoip模块的错误?

我正在尝试这个没有成功:

row.append(geo_isp.isp_by_addr(row[1].decode("windows-1252").encode("utf8")))

这仍然会在字符串前面打印'u':

row.append(geo_isp.isp_by_addr(str(row[1])))

另见:https://github.com/appliedsec/pygeoip/issues/1

1 个答案:

答案 0 :(得分:0)

目前您以二进制模式打开文件。 通过将打开的语句更改为

更改为文本模式
with open('filename','r') as csvfile:

这应该可以解决问题