Python3.6.2 и GeckoBoard "Неверный тип поля"""
В настоящее время я пишу скрипт для получения билетов от zendesk, которым не менее 7 дней. У меня словарь заполнен без проблем, проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь передать набор данных в geckoboard через их API/SDK, я получаю следующую ошибку:
Failed Due to: Invalid field type: ""
Однако все мои поля определены с типами, и ни один из вводимых мной данных не является "типизированным"
Мой код:
import datetime as dt
import geckoboard
import json
from datetime import datetime
from zdesk import Zendesk
def getTickets():
login = 'DUMMYVALUE'
token = 'DUMMYVALUE'
domain = 'DUMMYVALUE'
#Technician IDs
tech1 = 00000
tech2 = 00000
tech3 = 00000
#Get Today's Date
Today = dt.datetime.today()
#List of tech IDs for looping
Techs = [tech1, tech2, tech3]
#Connection object to Zendesk
connection = Zendesk(domain, login, token, True)
openTicketdict = {}
for names in Techs:
zenTickets = connection.user_tickets_assigned(user_id=names)
for ids, entry in enumerate(zenTickets['tickets']):
if (entry['status']== 'open' or entry['status'] == 'pending' or entry['status'] == 'hold'):
ticktimer = datetime.strptime(entry['created_at'][0:10], '%Y-%m-%d')
delta = (Today-ticktimer).days
if delta > 7:
openTicketdict.update({'ticket_num': entry['id'], 'created_at':entry['created_at'][0:10], 'subject':entry['subject'], 'priority':entry['priority'], 'assignee_id':entry['assignee_id']})
return openTicketdict
def putTickets(ticketDict):
dataF = {"fields":{'ticket_num':{'type':'number', 'name':'Ticket Number', 'optional': False}, 'created_at':{'type':'date', 'name':'Open Date', 'optional': False}, 'subject':{'type':'string', 'name':'Ticket Subject', 'optional': False}, 'priority':{'type':'string', 'name':'Priority', 'optional':False}, 'assignee_id':{'type':'number', 'name':'Tech', 'optional':False}}}
dataFput = {'data': None}
dataFJSON = json.dumps(dataF)
client = geckoboard.client("DUMMYVALUE")
dataFput.update({'data':ticketDict})
dataFputJSON = json.dumps(dataFput)
try:
dataset = client.datasets.find_or_create('support.ticketslongstanding', dataF)
dataset.put(dataFput)
except Exception as e:
print("Failed Due to: " + str(e) )
def mainrun():
# try:
theDict = getTickets()
putTickets(theDict)
#except Exception as e:
# print("Failed due to: {}".format(str(e))
mainrun()