Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从csv文件中删除货币值列中的引号?_Python_Csv - Fatal编程技术网

Python 从csv文件中删除货币值列中的引号?

Python 从csv文件中删除货币值列中的引号?,python,csv,Python,Csv,从csv文件中删除货币值列中的引号 我的CSV: " 2102"|"LINDOMAR MARTINS DE FREITAS"|"RUA 02 NR.270"|"FORMOSA"|"98130860"|"TIMON"|"MA"|"ADMINISTRATIVO"|"FATURISTA"|"LINDOMAR"|"S"|20130102|20130102|20130102|115.00|"TDC"|"4"|"88792334"|""|""|"" 我想要一个值为115.00的列不带引号 L = []

从csv文件中删除货币值列中的引号

我的CSV:

"   2102"|"LINDOMAR MARTINS DE FREITAS"|"RUA 02 NR.270"|"FORMOSA"|"98130860"|"TIMON"|"MA"|"ADMINISTRATIVO"|"FATURISTA"|"LINDOMAR"|"S"|20130102|20130102|20130102|115.00|"TDC"|"4"|"88792334"|""|""|""
我想要一个值为
115.00
的列不带引号

L = []
reader = csv.reader(open(infile), csv.QUOTE_NONNUMERIC, delimiter='|', quotechar='"')

for row in reader:
    L.append(tuple(row))

在Python列表中,值为
115.00
的列是
'115.00'
。我认为方法是在所有列上加引号。

您可以在适当的列上使用float。但是请注意,由于舍入误差,浮动通常不用于货币值。Python有一个专门的类型来实现这一点,与纯浮点相比,它有很多优点,值得注意的是:

。。。十进制数字可以精确表示。相反,像1.1和2.2这样的数字在二进制浮点中没有精确的表示。最终用户通常不希望1.1+2.2显示为3.30000000000000003,因为它使用二进制浮点

这将产生:

[(' 2102',
  'LINDOMAR MARTINS DE FREITAS',
  'RUA 02 NR.270',
  'FORMOSA',
  '98130860',
  'TIMON',
  'MA',
  'ADMINISTRATIVO',
  'FATURISTA',
  'LINDOMAR',
  'S',
  '20130102',
  '20130102',
  '20130102',
  115.0,
  'TDC',
  '4',
  '88792334',
  '',
  '',
  '')]

csv.reader将始终以stringmiku的形式读取输入,我有几个文件。在不同的位置有几个列。在那之后,我想插入一个Oracle数据库。@Ivanelson,我想这只是一个参数化的问题。我在我的帖子中添加了一条关于浮动和货币的重要提示。但这也是一个新问题。如何容易识别CSV的哪个列/位置具有115.00这样的值?@Ivanelson,这取决于您的数据。在最坏的情况下,无法识别数据到底是什么。例如,9.58是一种货币还是当前100米世界纪录的时间?DBAPI应该能够解决它并根据列类型存储数据?!我将搜索更多的DBAPI。
[(' 2102',
  'LINDOMAR MARTINS DE FREITAS',
  'RUA 02 NR.270',
  'FORMOSA',
  '98130860',
  'TIMON',
  'MA',
  'ADMINISTRATIVO',
  'FATURISTA',
  'LINDOMAR',
  'S',
  '20130102',
  '20130102',
  '20130102',
  115.0,
  'TDC',
  '4',
  '88792334',
  '',
  '',
  '')]