首页 > 解决方案 > python检查第一列名并从excel中检索输入

问题描述

我正在使用电报机器人和 python 编写脚本。

我需要有关如何在检查第一列名称匹配 session_name 时从 excel 中检索 int 的帮助?

目前它是由用户手动输入的,如下代码

session_name = 'adder1' 
startFrom = int(input("Start From = "))
endTo = int(input("End to = "))

但是,我想简化事情,让 python 从 excel 中读取,而不是用户手动输入数字。例如,使用下面的excel,我希望python输入检查session_name = 'adder2'然后确认并将输入startFrom = 41endTo = 80不是人工输入。这对我来说是必要的,因为如果手动操作,我有很多脚本要更改,所以做一个 Excel 表对我来说会容易得多。

在此处输入图像描述

编辑 :

df = pd.read_excel('mytable.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)):

显示错误变量注释预期语句的非法目标,发现 Py:RBRACE

标签: pythonpython-3.xexceltelegram-bot

解决方案


使用pandas(pip install pandasconda install pandas)

session_name = 'adder2'

df = pd.read_excel('mytable.xlsx')

startFrom, endTo = df.loc[df['Session'].str.contains(session_name, case=False),
                          ['Start', 'End']].squeeze()
# session_name = 'adder2'
>>> df

  Session  Start  End
0  Adder1      1   40
1  Adder2     41   80
2  Adder3     81  120

>>> startFrom
41

>>> endTo
80

推荐阅读