解码csv文件时给出错误的数据

时间:2018-06-19 11:34:52

标签: python decode encode odoo-11

我想解码一个csv文件,但是它提供了错误的数据。

示例:在csv文件中,我将文件BP1-R241解码后得到了BP1+AC0-R241

如果列中包含(-,/,\,*,....etc),则会添加+AC0

我该如何纠正?

我的代码:

import base64


data = 'Y29kZSxxdWFudGl0eSxsb2NhdGlvbgoxMjM0NTY2NDMsMSxCUDErQUMwLVIyNDEKMTIzNDUsMixCUDErQUMwLVIyNDEKMTIzNDU2LDMsQlAxK0FDMC1SMjQxCnEyMzIzNDM1NDY1Niw0LEJQMStBQzAtUjI0MQpkc2Zkc2YsNSxCUDErQUMwLVIyNDEKMjMzNDU2LDYsQlAxK0FDMC1SMjQxCmRkZnNkZiw3LEJQMStBQzAtUjI0MQozNTQ2NzgsOCxCUDErQUMwLVIyNDEKMTIzNDU2Nyw5LEJQMStBQzAtUjI0MQoyMzQ1NjcsMTAsQlAxK0FDMC1SMjQxCml1NjU0MzIsMTEsQlAxK0FDMC1SMjQxCmpoZ2ZkLDEyLEJQMStBQzAtUjI0MQp4Y3ZmZ2JobiwxMyxCUDErQUMwLVIyNDEKY2ZjZ2hqaywxNCxCUDErQUMwLVIyNDEKc2RmZ2hqLDE1LEJQMStBQzAtUjI0MQphc2RmZ2hqLDE2LEJQMStBQzAtUjI0MQpzYWRmZ2hqaywxNyxCUDErQUMwLVIyNDEKc2RzZHNkc2QsMTgsQlAxK0FDMC1SMjQxCjExMjIzMzQ0LDE5LEJQMStBQzAtUjI0MQoxMTIyMzM0NDIsMjAsQlAxK0FDMC1SMjQxClRFU1QxMjMsMjEsQlAxK0FDMC1SMjQxCg=='



data = base64.b64decode(data).decode('utf-8')

输出:-

code,quantity,location
123456643,1,BP1+AC0-R241

12345,2,BP1+AC0-R241

123456,3,BP1+AC0-R241

q23234354656,4,BP1+AC0-R241

dsfdsf,5,BP1+AC0-R241

233456,6,BP1+AC0-R241

ddfsdf,7,BP1+AC0-R241

354678,8,BP1+AC0-R241

1234567,9,BP1+AC0-R241

234567,10,BP1+AC0-R241

iu65432,11,BP1+AC0-R241

jhgfd,12,BP1+AC0-R241

xcvfgbhn,13,BP1+AC0-R241

cfcghjk,14,BP1+AC0-R241

sdfghj,15,BP1+AC0-R241

asdfghj,16,BP1+AC0-R241

sadfghjk,17,BP1+AC0-R241

sdsdsdsd,18,BP1+AC0-R241

11223344,19,BP1+AC0-R241

112233442,20,BP1+AC0-R241

TEST123,21,BP1+AC0-R241

1 个答案:

答案 0 :(得分:3)

您仅粘贴了 BP1+AC0-R241的数据,就无法解决。

问题不在于解码,而在于您从何处获取数据。

使用谷歌搜索“ + AC0”将我带到this thread,即:

  

文件中的数据编码为UTF-7(http://en.wikipedia.org/wiki/UTF-7),而不是更常见的ascii / latin-1或UTF-8。每个+ ACI-序列编码一个双引号字符。

您确定要将文件导出为UTF-8,而不是UTF-7吗?