我使用Python程序作为webhook,创建了一个具有dialogflow的Messenger聊天机器人。在一种用例中:用户通过不提供周数(1周/ 2周等)来请求每周报告。 Python程序不需要数周的时间作为参数,并将结果保存在本地csv中。我想将该csv作为附件发送到chatbot。
截至目前,我正在将csv文件保存在与Google驱动器同步的本地驱动器中,并将链接发送给用户。每次用户想要不同星期的销售文件更新时。但是,在现实生活中,多个用户同时请求报告时,其中一个用户会收到错误的文件(无论最近一次查询如何运行)。
inte = get_parameter_from_req(req)
week_num = round(inte)
print(week_num)
#cusid = pd.DataFrame([inte],columns = ['Weeks'])
#cusid.to_csv('C:/Users/Jon/Desktop/Reporting BOT/Reporting Bot Code/num_of_weeks.csv',index = False)
print("Inside DB Test")
mydb = mysql.connector.connect(host="localhost",user="root",passwd="****",database = "jon_bp")
mycursor = mydb.cursor()
mycursor.execute("select * from trans where t_date between curdate()-interval %s week AND curdate()",(week_num,))
result = mycursor.fetchall()
dataf = pd.DataFrame(result)
dataf.columns = ['Name','Amount','t_date']
dataf.to_csv('C:/Users/jon/Desktop/Reporting BOT/Report on cloud/Weekly Report by Bot.csv',index = False)
response = {
'fulfillmentText': 'Hi! Sales report for {0} weeks is ready.'.format(str(week_num)) +"\n"+ 'You can download the report from here: fix url for report',
}
答案 0 :(得分:0)
进行更多研究后,我找到了一种共享正确文件的方法。步骤如下:
我正在文件名中附加时间戳(包括微秒)
filename = 'my_file_{0}.csv'.format(datetime.now().strftime("%Y%m%d_%H%M%S%f")
这一次并将此文件保存到AWS S3存储桶。