感谢您的时间 . 我减少了这个问题的结构,使其尽可能简单地解决 . 我正在使用GUI开发人员tkinter在python中工作 . 我想从tkinter中的条目小部件捕获文本输入,并在json文件中打印/写入它 . 到目前为止我所拥有的是这个示例,它从条目小部件中捕获文本并在shell终端中打印文本 .
from tkinter import *
def show_entry_fields():
print("First Name: %s\nLast Name: %s" % (e1.get(), e2.get()))
e1.delete(0,END)
e2.delete(0,END)
master = Tk()
Label(master, text="First Name").grid(row=0)
Label(master, text="Last Name").grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
Button(master, text='Show', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
mainloop( )
这段代码正是我想要做的, except that the text is printed in the shell terminal instead of a separate json file. 要在json文件中打印文本,我尝试了其他函数方法,如:
def show_entry_fields():
f = open('name.json', 'a', encoding = 'utf8')
print("First Name: %s\nLast Name: %s" % (e1.get(), e2.get()))
e1.delete(0,END)
e2.delete(0,END)
在这里,我希望该函数将打开json文件'name.json'并以与第一个示例在shell终端中打印文本相同的方式打印该文件中的文本 . 这不成功 .
和:
def show_entry_fields():
f = open('name.json', 'a', encoding = 'utf8')
f.write("First Name: %s\nLast Name: %s" % (e1.get(), e2.get()))
e1.delete(0,END)
e2.delete(0,END)
在这里,我希望能够实现同样的目标,但同样没有成功 .
最终,目标是在'name.json'文件中打印输入到条目小部件中的文本 . 虽然我能够从终端shell中的条目小部件打印文本(参见第一个示例),但我找不到打开json文件并在该文件中打印文本的函数 . 谢谢!
这与任何其他问题不同,因为此问题具体询问如何将捕获的文本导出到json文件 . 以前的问题特别涉及捕获文本 .
2 回答
如果你想编写json,第一步是创建一个可以转换为json的数据结构 . 然后,您可以使用
json.dump
函数将数据写入文件 .例:
当您执行该代码,并为名字输入“Foo”而为姓氏输入“Bar”时,该文件将以此为内容:
这段代码有效!使用open(“文件名”,“a”)然后写入,将输入从条目标签导出到文件!