【问题标题】:Convert str to int in Python from CSV file column在 Python 中从 CSV 文件列将 str 转换为 int
【发布时间】:2017-03-07 00:29:04
【问题描述】:

我正在努力在 Python 中将字符串类型转换为整数。我要做的是从 CSV 文件中读取特定列并将其作为整数传递。这是我的代码:

import sys

   for line in sys.stdin:
       line = line.strip()
       line = line.split(",")
       tMax = line [9]
       tMax2 = int(tMax)

       if len(tMax) <=4:
           print (tMax2)

当我运行它时,我收到以下错误,

invalid literal for int() with base 10

我检查了列的类型,它被接受为字符串。

【问题讨论】:

  • 字符串中可能有其他一些非数字字符。它仍然是一个字符串,但可能存在空格、点或其他无法使用int()
  • @Signal - 没有解释为什么 It's typically better .. 这听起来像你的意见。

标签: python python-3.x mapreduce


【解决方案1】:

在我看来,由于它在抱怨 int() 转换,因此在尝试进行所述转换之前,tMax 中的任何内容都有问题。

这可以通过添加以下行轻松发现:

print('[' + tMax + ']')

在尝试转换之前。

这实际上应该相当清楚地向您显示问题,此时您可以继续找出为什么字符串值不是您所期望的。

【讨论】:

    【解决方案2】:

    我跳过了错误中最重要的部分 - 实际描述。错误invalid literal for int() with base 10:TMAX,这意味着它在抱怨标题。我删除了标题,它运行得很漂亮。我知道在不删除标题的情况下读取文件有更好的方法;我很快就会知道的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 2015-09-14
      • 2016-06-23
      • 2017-11-30
      • 2021-03-11
      • 2019-10-16
      • 1970-01-01
      相关资源
      最近更新 更多