我正在尝试将.csv文件读入Python(Spyder)但我一直收到错误.我的代码:
import csv
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)  
print(data)
我收到以下错误:
SyntaxError :( unicode错误)'unicodeescape'编解码器无法解码2-3位的字节:截断\ UXXXXXXXX转义
我试图用\替换\或用/和我试图在"C ..之前放一个r ..但所有这些东西都不起作用.
当涉及UTF-8/Unicode时,Python中的csv模块无法正常工作.我在Python文档和其他网页上找到了适用于特定情况的片段,但您必须了解您正在处理的编码并使用相应的代码段.
如何从Python 2.6中"正常工作"的.csv文件中读取和写入字符串和Unicode字符串?或者这是Python 2.6的限制,没有简单的解决方案?
这似乎应该是一个简单的解决方案,但到目前为止,我找不到解决方案.我有一个单列csv文件,其中非ascii字符保存在utf-8中,我想读入并存储在列表中.我试图遵循"Unicode三明治"的原则,并在读取文件时解码:
import codecs
import csv
with codecs.open('utf8file.csv', 'rU', encoding='utf-8') as file:
input_file = csv.reader(file, delimiter=",", quotechar='|')
list = []
for row in input_file:
    list.extend(row)
这会产生恐惧'编解码器无法对位置编码,顺序不在范围(128)'错误.
我也尝试过这个答案的解决方案,它会返回一个类似的错误
def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs):
    csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs)
    for row in csv_reader:
        yield [unicode(cell, 'utf-8') for cell in row]
filename = 'inputs\encode.csv'
reader = unicode_csv_reader(open(filename))
target_list = []
for field1 in reader:
    target_list.extend(field1)
从文档改编的非常类似的解决方案返回相同的错误.
def unicode_csv_reader(utf8_data, dialect=csv.excel):
    csv_reader = csv.reader(utf_8_encoder(utf8_data), dialect)
    for row in csv_reader:
        yield [unicode(cell, …我正在尝试将csv文件读入pandas数据帧.但是,csv包含重音符号.我使用的是Python 2.7
我遇到了一个UnicodeDecodeError因为第一列有重音.我已经在很多网站上阅读过这样的关于CSV文件中UTF-8的问题,这篇关于与新行相关的CSV错误的博客文章,以及关于Python 2.7中UTF-8问题的博客文章.
我使用了从那里找到的答案来尝试修改我的代码.原来我有:
import pandas as pd
#Create a dataframe with the data we are interested in
df = pd.DataFrame.from_csv('MYDATA.csv')
mode = lambda ts: ts.value_counts(sort=True).index[0]
cols = df['CompanyName'].value_counts().index
df['Calls'] = df.groupby('CompanyName')['CompanyName'].transform(pd.Series.value_counts)
Excetera.它工作,但现在传递"NÍ"和"Nê"作为客户名称给出错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xea in position 7: invalid continuation byte
我尝试将行更改为df = pd.read_csv('MYDATA.csv',encoding ='utf-8')但这会产生相同的错误.
所以我从研究发现的建议中尝试了这个,但它也没有用,我得到了同样的错误.
import pandas as pd
import csv
def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs):
    csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs)
    for row in csv_reader: …我有一个商店名称列表,有几千个名字,其中一些有非标准的美国英语字符,这些都是一个问题.
例如,我的输入文件如下所示:
store_name
yéché
Ázak
ótndle
我希望输出文件实际上看起来像这样(我认为Googledocs实现了这一点,顺便说一句):
store_name  new_store_name 
yéché       yéché
Ázak        Ãzak
ótndle      ótndle 
只有大约10个这样的规则将非标准的美国英语字符转换成这种格式,所以我经历并在excel中控制f来制作它们.但我希望将来能够以计算方式完成这样的事情,并且只是想知道是否有使用Python的快速方法.要清楚,我想做的是:
é become é
Á become Ãi
这是我的代码:
import csv
file  = open('traintag1.csv','r',encoding='utf-8')
csv_reader = csv.reader(file)
for row in csv_reader:
    print row[-2]
然后遇到类似标题的错误:
file = open('traintag1.csv','r',encoding ='utf-8')TypeError:“ encoding”是此函数的无效关键字参数”
我想使用'encoding ='utf-8',因为当文件装满中文时,在读取文件以在屏幕上打印后,单词是乱七八糟的。当我from io import open在头上添加另一条线时,再次出现如下错误:
UnicodeDecodeError:'utf8'编解码器无法解码位置29的字节0xbb:无效的起始字节
我正在读取具有UTF8编码的CSV文件:
ifile = open(fname, "r")
for row in csv.reader(ifile):
    name = row[0]
    print repr(row[0])
这很好用,并打印出我希望它打印出来的东西; UTF8编码str:
> '\xc3\x81lvaro Salazar'
> '\xc3\x89lodie Yung'
...
此外,当我只是打印str(而不是repr())输出显示确定(我不明白 - 这不应该导致错误吗?):
> Álvaro Salazar
> Élodie Yung
但是当我尝试将我的UTF8编码转换strs为unicode:
ifile = open(fname, "r")
for row in csv.reader(ifile):
    name = row[0]
    print unicode(name, 'utf-8')  # or name.decode('utf-8')
我得到了臭名昭着的:
Traceback (most recent call last):                                       
File "scripts/script.py", line 33, in <module>
    print unicode(fullname, 'utf-8')
UnicodeEncodeError: 'ascii' codec can't encode …我在使用unicodecsv阅读器时遇到问题。我一直在寻找有关如何使用该模块的不同示例,但是每个人都在不断引用unicodecsv网站(或一些类似的变体)中的确切示例。
import unicodecsv as csv
from io import BytesIO
f = BytesIO()
w = csv.writer(f, encoding='utf-8')
_ = w.writerow((u'é', u'ñ'))
_ = f.seek(0)
r = csv.reader(f, encoding='utf-8')
next(r) == [u'é', u'ñ']
>>> True
对我来说,这个例子对我们的理解做出了太多假设。看起来好像没有传递csv文件。我完全错过了情节。
我想做的是:
我的断码:
import unicodecsv
#
i = 0
myCSV = "$_input.csv"
dic = {}
#
f = open(myCSV, "rb")
reader = unicodecsv.reader(f, delimiter=',')
strHeader = reader.next()
#
# read the first line of csv
# use custom function to parse the header
myHeader = …python ×8
csv ×7
unicode ×4
utf-8 ×4
encoding ×3
dataframe ×1
pandas ×1
python-2.7 ×1
python-2.x ×1
syntax-error ×1