图灵机器人接口调用限制的解决
昨天我们的文章中说到:使用图灵机器人作为应答机器人可以满足要求,但是每天的回复条数在不花钱的情况下只能有100条。对于我这样贫困线人口怎么可能每个月花费99元就为了自动回复呢。于是我就在想还有没有其它的方式能够快速做一个请求和应答表呢?
结合我之前工作上的经验,那我理解就是直接将请求语句的关键词和需要的回复放在一个Excel表格中,然后直接通过查询Excel表格这样也能做到自动回复,说干就干。整个流程如下图:
从流程图上看我们还是在昨天的整体框架上新增后续的容错处理,一旦检测到图灵机器人API请求已用完之后,我们便启动我们的容错机制,在我们的Excel表格中去查找我们需要返回的内容,若没有找到的话,我们就直接返回一个固定语句告诉粉丝朋友,我们现在可能没有听懂。
整体已经说完了,接下来我们就开始实干了。首先我们需要去读取一个Excel表格,我使用的是xlrd这个库(一样啊,安装方法参考之前的python学习三——库安装),由于之前我们已经整理了一个Excel表格的读写模块——ReadAndWriteExcel.py,所以在这里我直接将这个模块拿过来调用就好了,具体代码见下:
# _*_coding=utf-8_*_
import xlwt
import xlrd
class WriteExcel:
def __init__(self, sheet_name=None):
"""初始化写表格对象
:param sheet_name: 写表格的sheet名,默认为1
"""
if sheet_name:
self.sheetname = sheet_name
else:
self.sheetname = "1"
self.workbook = xlwt.Workbook()
self.worksheet = self.workbook.add_sheet(sheetname=self.sheetname)
def write_values(self, row, col, values):
"""向目标sheet的某个行列写入值
:param row: 目标行
:param col: 目标列
:param values: 想要写入的值
"""
self.worksheet.write(row, col, values)
def save_file(self, filename=None):
"""保存表格
:param filename: 保存的文件名
"""
if filename:
self.filename = filename
else:
self.filename = "test.xls"
self.workbook.save(self.filename)
class OpenExcel:
def __init__(self, file_name=None, sheet_id=None):
"""初始化读取Excel表格
:param file_name: 需要读取的表格名
:param sheet_id: 需要读取的表格sheet
"""
if file_name:
self.file_name = file_name
self.sheet_id = sheet_id
else:
self.file_name = 'example.xlsx'
self.sheet_id = 0
self.data = self.get_data()
def get_data(self):
"""读取表格数据
:return: 返回读取的表格数据
"""
data = xlrd.open_workbook(self.file_name)
tables = data.sheets()[self.sheet_id]
return tables
def get_lines(self):
"""读取表格总行数
:return: 返回表格总行数
"""
tables = self.data
return