首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在tkinter标签中迭代循环

不能在tkinter标签中迭代循环
EN

Stack Overflow用户
提问于 2021-03-03 20:27:34
回答 1查看 33关注 0票数 0

问题:,我正在尝试从freshdesk网站中提取一个结果列表。这一切都是在json中进行的,我必须使用for循环来检索我想要的特定数据。

当我使用for循环并使用"print“时,它可以工作,并且我在IDE的命令行中看到了我想要的所有信息。

示例:

代码语言:javascript
复制
ticketresponse = requests.get(freshdeskticketsurl, auth = (freshdeskapi, freshdeskpassword))
ticket_json = ticketresponse.json()
lenghtofticket30 = (len(ticket_json))
print(f"Here are the number of tickets in the past 30 days: ", lenghtofticket30)

def myTicketstatusloop():
    for i in range(len(ticket_json)):
        ticketsubject_str = json.dumps(ticket_json[i]['subject'], indent=2,)
        ticketstatus_str = json.dumps(ticket_json[i]['status'], indent=2,)
        ticketcreationdate = json.dumps(ticket_json[i]['created_at'], indent=2,)
        ticketupdateddate = json.dumps(ticket_json[i]['updated_at'], indent=2)
        ticketstatusreplace_str = ticketstatus_str.replace("2", "Open")
        ticketstatusreplace_str = ticketstatus_str.replace("5", "Closed")
        print(ticketsubject_str)
        print(ticketstatusreplace_str)
        print(ticketcreationdate)
        print(ticketupdateddate)
        print("\n")

myTicketstatusloop()

结果:

代码语言:javascript
复制
Here are the number of tickets in the past 30 days:  38
"Ensure M365 email is in outlook, setup wifi adapter, see why computer is slow"
Closed
"2021-03-03T20:08:54Z"
"2021-03-03T20:09:00Z"


"FW: Email DL List"
Closed
"2021-03-03T19:21:16Z"
"2021-03-03T19:28:29Z"


"knowb4 users"
2
"2021-03-03T17:38:39Z"
"2021-03-03T17:38:39Z"


"FW: EFT Payment scheduled 03 March 21 Account: MJJ0011A"
2
"2021-03-03T17:30:36Z"
"2021-03-03T17:35:34Z"

图片:

然而,当我试图在tkinter的标签中获得相同的值时,我只得到第一个结果.

示例:

代码语言:javascript
复制
ticketresponse = requests.get(freshdeskticketsurl, auth = (freshdeskapi, freshdeskpassword))
ticket_json = ticketresponse.json()
lenghtofticket30 = (len(ticket_json))
print(f"Here are the number of tickets in the past 30 days: ", lenghtofticket30)

def myTicketstatusloop():
    for i in range(len(ticket_json)):
        ticketsubject_str = json.dumps(ticket_json[i]['subject'], indent=2,)
        ticketstatus_str = json.dumps(ticket_json[i]['status'], indent=2,)
        ticketcreationdate = json.dumps(ticket_json[i]['created_at'], indent=2,)
        ticketupdateddate = json.dumps(ticket_json[i]['updated_at'], indent=2)
        ticketstatusreplace_str = ticketstatus_str.replace("2", "Open")
        ticketstatusreplace_str = ticketstatus_str.replace("5", "Closed")
        label1 = Label(homepage, text = ticketsubject_str + "\n" + ticketstatusreplace_str + "\n" + ticketcreationdate + "\n" + ticketupdateddate)
        label1.grid(row=1, column=1)

homepage = Tk()
homepage.title("My first GUI")
# set size of window
homepage.geometry('1473x400')


    
    
myButton1 = Button(homepage, text="Tickets open", command=myTicketstatusloop, bg="black", fg="green", font='Helvetica 13 bold', padx=20, pady=20).grid(row=0, column=0)
myButton2 = Button(homepage, text="Tickets closed today", bg="black", fg="green", font='Helvetica 13 bold',padx=20, pady=20).grid(row=0, column=1)
myButton3 = Button(homepage, text="most reoccuring type of ticket", bg="black", fg="green", font='Helvetica 13 bold', padx=20, pady=20).grid(row=0, column=2)
myButton4 = Button(homepage, text="Average Hours this week", bg="black", fg="green", font='Helvetica 13 bold', padx=20, pady=20).grid(row=0, column=3)
myButton5 = Button(homepage, text="Todo-list", bg="black", fg="green", font='Helvetica 13 bold', padx=20, pady=20).grid(row=0, column=4)
myButton6 = Button(homepage, text="Intermedia", bg="black", fg="green", font='Helvetica 13 bold', padx=20, pady=20).grid(row=0, column=5)
myButton7 = Button(homepage, text="M365", bg="black", fg="green", font='Helvetica 13 bold', padx=20, pady=20).grid(row=0, column=6)
myButton8 = Button(homepage, text="Knowbe4", bg="black", fg="green", font='Helvetica 13 bold', padx=20, pady=20).grid(row=0, column=7)
myButton9 = Button(homepage, text="Ninja", bg="black", fg="green", font='Helvetica 13 bold', padx=20, pady=20).grid(row=0, column=8)


homepage.mainloop()

结果:

代码语言:javascript
复制
"FW: Alert - OnPointe Properties / JMark and Associates - CPDC02 - Disk Volume Free space for 'C:' is less than or equal to 10% from 2021-0..."
Closed
"2021-03-03T16:45:29Z"
"2021-03-03T19:20:45Z"

图片:

我尝试了几个不同的想法,但到目前为止还没有给出所有的数据。如果你有什么想法或建议,请告诉我。

谢谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-03 20:57:48

快速修复:如果要向下显示所有内容,那么只需增加行号,例如:

代码语言:javascript
复制
label1.grid(row=i, column=1)

如果想要不同的结构,那么将所有这些拉出的数据附加到列表中,然后循环遍历所需的行和列,从列表中获取项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66464440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档