Python Tkinter表格显示

Python Tkinter表格显示,python,tkinter,treeview,Python,Tkinter,Treeview,我在控制台中正好有这种类型的数据 ['0.0.0.0' 68 '255.5.55.5' 67 '04/05/2021 02:42:15 AM'] Threat ['4.37.53.24' 67 '5.225.5.255' 68 '04/05/2021 02:42:15 AM'] Threat ['503.637.53.15' 385 '8.8.9.8' 53 '04/05/2021 02:42:17 AM'] Ok ['23.27.43.65' 446 '8.8.8.8' 53 '04/05/2

我在控制台中正好有这种类型的数据

['0.0.0.0' 68 '255.5.55.5' 67 '04/05/2021 02:42:15 AM'] Threat
['4.37.53.24' 67 '5.225.5.255' 68 '04/05/2021 02:42:15 AM'] Threat
['503.637.53.15' 385 '8.8.9.8' 53 '04/05/2021 02:42:17 AM'] Ok
['23.27.43.65' 446 '8.8.8.8' 53 '04/05/2021 02:42:17 AM'] Ok
['23.27.53.5' 814 '172.217.24.78' 443 '04/05/2021 02:42:17 AM'] Ok
['8.1.0.1' 0 '8.1.6.1' 0 '04/05/2021 02:42:17 AM'] Ok
它是用下面的代码生成的。问题是,我想以正确的列和行形状显示,我使用tkinter库用于Gui目的。在Tkinter,我试过tksheet,但在这种情况下不起作用。如何以正确的列和行形式显示此内容?哪个Gui tkinter小部件支持这一点

from tkinter import ttk
columns = ('#1', '#2', '#3', '#4', '#5', '#6')

tree = ttk.Treeview(root, columns=columns, show='headings')

# define headings
tree.heading('#1', text='S-IP')
tree.heading('#2', text='S-Port')
tree.heading('#3', text='D-IP')
tree.heading('#4', text='D-port')
tree.heading('#5', text='Time-Stamp')
tree.heading('#6', text='Status')
tree.grid(row=0, column=0, sticky='nsew')


df = pd.read_csv('Flo.csv')
classifier_model_reloaded = pickle.load(open('pickle_model.pkl', 'rb'))
predictions=classifier_model_reloaded.predict(X)
for i in range(len(predictions)):
     num = '%d' % (predictions[i])
     if int(num) == 0:
        results.append('OK')
     else:
        results.append('Threat')
     for i in range(len(results)):          
            k = (df.loc[i, ["Src IP", "Src Port", "Dst IP", "Dst Port", "Timestamp" ]].values, results[i])
            tree.insert('', tk.END, values=k)

这是因为
k
在以下行中:

k = (df.loc[i, ["Src IP", "Src Port", "Dst IP", "Dst Port", "Timestamp" ]].values, results[i])
是一个包含两项的元组:
numpy.ndarray
实例和一个字符串

您需要将
numpy.ndarray
实例和字符串合并到元组或列表中:

k = df.loc[i, ["Src IP", "Src Port", "Dst IP", "Dst Port", "Timestamp"]].values.tolist() + [results[i]]

你试过使用ttk.Treeview吗?没有,我没有试过。这些数据在这方面会顺利吗@TheLizzard@TheLizzard我使用了它并添加了它的显示:(我如何才能正确地在列中显示值我不是
Treeview
专家,但看看它是因为
k
类似于
[…],“OK”]
。你需要将
OK
添加到列表中(
k[0]
)然后将此列表传递给
values
option。是的,但是如何添加特定列的名称,如k=list(df.loc[I,list(df.columns[“Src IP”,“Src Port”,“Dst IP”,“Dst Port”,“Timestamp”])。values)+[results[I]]不起作用,因为我有很多列,所以我需要在命令@acw168use
k=df.loc[I,[“Src IP”,“Src Port”,“Dst IP”、“Dst端口”、“时间戳”].tolist()+[result[i]]