【问题标题】:Python invalid literal for int() with base 10: 'Start'以 10 为底的 int() 的 Python 无效文字:“开始”
【发布时间】:2021-07-16 05:55:53
【问题描述】:
df = pd.read_excel('StartAdding.xlsx')

startfrom,endto = df.loc[df['Session'].str.contains(session_name, case=False),['Start','End']].squeeze()

n = 0

for user in users:
    
    if (int(startfrom) <= int(user['srno'])) and (int(user['srno']) <= int(endto)):
        n += 1
        if n % 50 == 0:
            sleep(900)

我在第 84 行收到 ValueError: invalid literal for int() with base 10: 'Start'

任何帮助或任何人都知道为什么会发生这种情况?我正在尝试从下面的 excel 中读取 startfrom 和 endto。

【问题讨论】:

  • 请不要使用文字图片,只需从您的代码中提取minimal reproducible example 并将其复制到问题中即可。就是说,也请在网上搜索一下错误信息,找到解释很简单!
  • 您正在读取列标题 (Start) 并将它们转换为 int。这就是错误的原因。试试for user in users[1:]

标签: python python-3.x telegram-bot


【解决方案1】:

你的第 78 行应该是:

startfrom, endto = df.loc[df['Session'].str.contains(session_name, case=False), ['Start', 'End']].values.tolist()[0]

代替:

startfrom,endto = df.loc[df['Session'].str.contains(session_name, case=False),['Start','End']].squeeze()

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 2019-10-29
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    相关资源
    最近更新 更多