Python 正在将CSV加载到红移,缺少换行符:在位置38处发现意外字符0x76

Python 正在将CSV加载到红移,缺少换行符:在位置38处发现意外字符0x76,python,csv,amazon-web-services,amazon-s3,amazon-redshift,Python,Csv,Amazon Web Services,Amazon S3,Amazon Redshift,我想将我的csv加载到AWS红移, 文件内容如下: 39334;sms|587b083b98420f9a11c414a9;verified;2017-04-07T05:45:14.479Z;2017-05-02T13:05:32.588Z;00f8a90d-518a-40a0-b663-c4070baf2459;1494012833;2017-05-05T15:33:53.990136-0400;None;2017-04-06T22:33:06-0700;47.451199;47.451199;

我想将我的csv加载到AWS红移, 文件内容如下:

39334;sms|587b083b98420f9a11c414a9;verified;2017-04-07T05:45:14.479Z;2017-05-02T13:05:32.588Z;00f8a90d-518a-40a0-b663-c4070baf2459;1494012833;2017-05-05T15:33:53.990136-0400;None;2017-04-06T22:33:06-0700;47.451199;47.451199;no;yes;no;no;no;no;no;no;yes;yes;yes;yes;1;2.0.3.1;Optional('AT&T');iPhone;10.2.1;[Decimal('11'), Decimal('12')];Phone mount;Washington;CA337B1C-EEC9-4B0E-8A3C-F5DA959D47AB;Sun Jan 15 2017 05:27:33 GMT+0000 (UTC)**
我通过Python将上述内容写入csv:

with open(self.path + ".csv", "a") as myfile:
    file_writer = csv.writer(myfile)
    file_writer.writerow([x.strip() for x in line.split(';')])
然后我上传到AmazonS3。在尝试将CSV文件从S3加载到红移之后,我使用了复制命令:

copy table_name 'my_s3_location'
CREDENTIALS 'my_credential'
delimiter ',' region 'my_region';
执行copy命令时,Redshift会抛出一个错误,如下所示:

缺少换行符:在位置38处发现意外字符0x76

我看不到第38个位置,我只有34列。你能试试吗

copy table_name 'my_s3_location'
from bucketlocation
CREDENTIALS xxxxxxxxx
delimiter ';'
removequotes
acceptinvchars;

它是指行中的第38个字符。您能否向我们展示CSV文件中显示的数据?另外,您应该在COPY命令中使用CSV参数(但它可能不会导致此问题)。@JohnRotenstein我已经发布了我的CSV内容,它的dlimiteby;或者,可以在此处复制要在其中复制数据的表的ddl吗?其不是分隔符;。在写入csv文件时,我使用;好的,那么您可以显示您正在导入的实际CSV吗?不管怎么说,这对我来说是个好办法,很多次我都是通过脚本生成csv的。使用HxD或类似编辑器打开文件,查找可能存在的bom表字符。99%的时候它对我有效。当你说“它不起作用”时,你是什么意思?发生了什么,需要多长时间,显示了什么消息?除非你提供更多的信息,否则我们很难帮助你。