【问题标题】:invalid literal for int() with base 10: '16:00:00'基数为 10 的 int() 的无效文字:'16:00:00'
【发布时间】:2014-03-03 01:20:59
【问题描述】:
dic = dict()
with open('C:\\Users\\aman\\Documents\\dataVal.txt', 'r') as fh:
    for l in fh.readlines():
        try:
            lines = l.split()
            date, sub, num = lines[0], lines[1], [int(x) for x in lines[2:]]
            dic.setdefault(date, {})
            dic[date][sub] = num
        except Exception as er:
            print er
print dic

有人可以帮忙吗? 它给了我一个错误,说 int() 以 10 为基数的无效文字:'16:00:00'。如何摆脱它?仅供参考,'16:00:00' 是 txt 文件中表格的第一列

16:00:00     Maths   100  95  65  32  23  45  77  54  78  88  45  67  89
17:00:00    Science 45   53  76  78  54  78  34  99  55  100 45  56 78
18:00:00  English 43   45  56  76  98  34  65  34  45  67  76  34  98

【问题讨论】:

  • 请把你正在解析的行和错误。顺便说一句,如果您也有字符串类型,请将 int(x) 更改为 str(x)。
  • 你想要的输出如何? '时间是关键'
  • 你能粘贴你得到的错误吗,'16:00:00' 可以用作字符串,所以你的代码应该可以工作
  • 好的,让我们先确认您的错误。除了我修复的缩进之外,我没有看到您的代码有任何错误。
  • 您添加的解决方案 sn-p。它工作得很好。非常感谢。你是个天才。

标签: python-2.7


【解决方案1】:

我把 int(x) 改成了 str(x),你可以试试。如果那是错误。

dic = dict()
with open('C:\\Users\\aman\\Documents\\dataVal.txt', 'r') as fh:
    for l in fh.readlines():
        try:
            lines = l.split()
            date, sub, num = lines[0], lines[1], [str(x) for x in lines[2:]]
            dic.setdefault(date, {})
            dic[date][sub] = num
        except Exception as er:
            print er
print dic

输出:

 {'17:00:00': {'Science': ['45', '53', '76', '78', '54', '78', '34', '99', '55', '100', '45', '56', '78']}, 
  '18:00:00': {'English': ['43', '45', '56', '76', '98', '34', '65', '34', '45', '67', '76', '34', '98']}, 
  '16:00:00': {'Maths': ['100', '95', '65', '32', '23', '45', '77', '54', '78', '88', '45', '67', '89']}}

【讨论】:

  • 抱歉,我更改了tryexcept 的缩进,现在查看
猜你喜欢
  • 2019-07-19
  • 1970-01-01
  • 2013-05-31
  • 2018-03-13
  • 1970-01-01
  • 2021-06-25
  • 1970-01-01
  • 2019-12-01
  • 1970-01-01
相关资源
最近更新 更多