Tkinter在文本内部插入JSON数据

时间:2019-05-27 18:29:25

标签: python tkinter

我有一个带有名称,电子邮件地址,姓氏等的json文件。 我试图将数据放在tkinter的文本框中。

我尝试这样使用Label:

public static boolean isDoubloon(String s) {
    if (s.length() %2 != 0)
        return false;

    String str = s.toLowerCase();

    while (str.length() > 0) {
        int index2 = str.indexOf(str.charAt(0), 1);
        if (index2 == -1) {
            return false;
        }
        int index3 = str.indexOf(str.charAt(0), index2 + 1);
        if (index3 != -1) {
            return false;
        }

        str = str.substring(1, index2) + str.substring(index2 + 1);
    }
    return true;
}

现在发生的是所有信息只有一行,而且它不可读,所以我决定使用“文本”框

{
existe: true,
servicio: drive,
email: personax@gmail.com
}

我现在得到错误:

with open('file.json','r') as inside:
    data = json.load(inside)

Label(Interface, text=data).place(x=100,y=100)

我读到它只需要2个参数,但是我尝试了3个:

Text(Interface, state='normal',height = 20, width = 60).place(x=10,y=350)
Text.insert(INSERT,data)

我得到了错误:

TypeError: insert() missing 1 required positional argument: 'chars'

在这种情况下,我不知道自己在做错什么。

2 个答案:

答案 0 :(得分:1)

我无法重现您说的问题。以下可运行示例似乎可以在文件中显示JSON数据方面起作用:

import json
from tkinter import *


json_filename = 'inside.json'

Interface = Tk()

with open(json_filename, 'r') as inside:
    data = json.load(inside)

text = Text(Interface, state='normal', height=20, width=60)
text.place(x=10, y=50)
text.insert('1.0', str(data))

Interface.mainloop()

答案 1 :(得分:1)

问题是这行代码:

Text.insert(INSERT,data,"test")

您正在类上调用一个方法,该方法需要三个参数:实例,索引和要输入的数据。

相反,您需要在实例中调用insert

text = Text(Interface, state='normal',height = 20, width = 60)
text.place(x=10,y=350)
...
text.insert(INSERT, data)

注意:必须保存对文本窗口小部件的引用,并且必须调用place(或packgrid)同一行(例如:Text(...)。place(...)`。