我遇到了一个问题,因为我的一个供应商。出于某种原因,每当我通过他们的统计API运行任何报告时,它总是使用太平洋标准时间运行,而不管我在东部标准时间的事实。为了解决这个问题,我必须将报告的开始和结束日期拨回三个小时,然后我需要手动将“TimeStamp”列的时间向前更改三个小时。最后我需要将所有结果输入到我的MS SQL示例中。我已经到了可以返回结果的地步,但是我不知道下一步该怎么做。我的直觉告诉我,这可能是一个pandas解决方案,但是我不确定如何将结果导入pandas数据框。以下是我目前所做的(注意我正在与之合作的供应商名为Five9,我为他们找到了一个库,可以帮助我连接到API并获得我想要的报告结果):
from five9 import Five9
import datetime
from datetime import datetime, timedelta
import time
from pytz import timezone
import pyodbc
import json
now_utc = datetime.now(timezone('UTC'))
now_eastern = now_utc.astimezone(timezone('US/Eastern'))
#Change days from current time
startreportime = now_eastern - timedelta(days=2)
endreportime = now_eastern - timedelta(days=1)
#Set start and end time for report criteria
starttime = f"{(startreportime):%Y-%m-%d}" + 'T21:00:00.000'
endtime = f"{(endreportime):%Y-%m-%d}" + 'T20:59:00.000'
#connect to API
client = Five9('MyUID','MyPWD')
#Set variables as start and end
start = starttime
end = endtime
#set criteria using variables
criteria = {'time':{'end':end, 'start':start}}
#Get report and seet criteria for report
identifier = client.configuration.runReport(folderName='Five9 Import Data',\
reportName='Agent State Details',criteria=criteria)
#Sleep so report has time to complete
time.sleep(30)
#Get report results
get_results = client.configuration.getReportResult(identifier)
results = get_results['records']
print(results)
使用这个我得到这些类型的结果:
[{
'values': {
'data': [
'Mon, 22 Feb 2021 21:00:00',
'abowling@*****.com',
'Adam',
'Bowling',
'Login',
None,
None,
'TUPSS, Telamon Inbound, Stericycle Environment Inbound, Stericycle ComSol Inbound,
'01:18:05',
'08 - TS'
]
}
如果我能把这些结果放到一个dataframe中,我确信我能处理剩下的部分。我知道如何使用timedelta来处理时间戳问题,我可以处理把它从一个dataframe放到sql中。我只是花了很长时间试图弄清楚如何把这些结果放到一个dataframe中。
1条答案
按热度按时间0pizxfdo1#
我不确定是否有人会读到这篇文章,但我让它与以下内容一起工作: