ascii编解码器无法编码字符,Python 2.6

2024-05-14 13:59:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这是一个常见的初学者问题,在stack exchange上有很多类似的问题,我一直在搜索它们,但我还是搞不懂。我有一些数据来自一个类似这样的数据(列表中大约有1000个项目):

inputList = [[u'someplace', u'3901 West Millen Drive', u'Hobbs', u'NH', 
u'88240', u'37.751117', u'-103.187709999'], [u'\u0100lon someplace', u'3120 
S Las Vegas Blvd', u'Las Duman', u'AL', u'89109', u'36.129066', u'-145.168791']]

我正在尝试将其写入csv文件,如下所示:

^{pr2}$

但我总是犯这个错误,作家.作家(数据):

^{3}$

我尝试了很多不同的方法来对列表中的数据进行编码,但是仍然总是出错。我愿意忽略那些不能被编码成ascii的字符。有人能给我指出正确的方向吗,我用的是python2.6


Tags: 数据项目编码列表exchangestackdrivelas
2条回答

如果您只想删除这些不好的字符,可以使用以下代码:

for i in inputList:
    for ii in i:
        ii = "".join(list( filter((lambda x: ord(x) < 128), ii)))
        print ii

输出:

^{pr2}$

最终代码如下:

inputList = [[u'someplace', u'3901 West Millen Drive', u'Hobbs', u'NH', 
u'88240', u'37.751117', u'-103.187709999'], [u'\u0100lon someplace', u'3120 S Las Vegas Blvd', u'Las Duman', u'AL', u'89109', u'36.129066', u'-145.168791']]

cleared_inputList = []

for i in inputList:
    c_i = []
    for ii in i:
        ii = "".join(list( filter((lambda x: ord(x) < 128), ii)))
        c_i.append(ii)
    cleared_inputList.append(c_i)

def csvWrite(inList, outFile):
    import csv
    destination = open(outFile, 'w')
    writer = csv.writer(destination, delimiter = ',')
    data = inList   
    writer.writerows(data)
    destination.close()


csvWrite(cleared_inputList, output)

这一行似乎很奇怪:ii.replace(" u'\u2019'", ""),你是说ii.replace(u"\u2019", u"")?在

相关问题 更多 >

    热门问题