我有一个带有名称,电子邮件地址,姓氏等的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'
在这种情况下,我不知道自己在做错什么。
答案 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
(或pack
或grid
)同一行(例如:Text(...)。place(...)`。