【发布时间】:2014-11-22 23:49:50
【问题描述】:
我会因为一个错误而发疯的。从互联网上读取一个文件并且到目前为止我清理了内容以拥有很多这样的行: ['38', '私人', '193026', '11th', '7', '已婚公民配偶', '手艺修理', '丈夫', '白人', '男', '0' , '0', '40', '美国', '
现在我想将行的每个段拆分为一个数据集。将“38”例如转换为“Age”。 我看到我在这里有 int 和 string。此外,我想以某种方式将字符串转换为 int。
当我执行以下操作时:
for row in data_file:
row = row.strip()
row = row.split(",")
try:
row[0] = int (row [0]) #int(row(0))
except ValueError as e:
print (e)
continue
我得到错误: ValueError: int() 以 10 为底的无效文字:''
如果我将 int (row [0]) 交换为 int(row(0)) 我收到错误 TypeError: 'list' object is not callable
不知怎的,我迷路了……
知道我做错了什么吗?
【问题讨论】:
-
您需要将其设为
int吗? -
我想是的……第一个'38'我想作为一个int。我想查看上述行中的所有值。
-
似乎有些行在第 0 个索引处具有空值 (
'')。检查以确保您的数据确实完整。如果不是,那么您可能必须捕获错误并插入默认值,或者忽略它,或者基本上以某种方式处理它 -
@AndiNeier 这些行看起来像您的示例吗?或者这只是它的列表版本?
-
您的解析不正确。您需要从每个元素中删除引号。但是,如果任何带引号的字符串中有逗号,那么您的结果将是完全错误的。有很多可用的 Python CSV 解析示例。
标签: python list file dictionary