Tkinter使用filedialog读入JSON文件返回文件流如何处理
目的:把文件流转换成Python易于处理的List或字典,便于将来遍历,插入MongoDB
代码如下:
def openfile():
file_in=tkinter.filedialog.askopenfile(title="打开一个Json文件",filetypes=[("JSON",".json")])
data=[]
for line in file_in.readLines():
dic = json.loads(line)
data.append(dic)
print(len(data))
目前程序报错:AttributeError: '_io.TextIOWrapper' object has no attribute 'readLines'
我知道是文件流没有这个方法,我想知道如何处理
你的代码中 readLines()
是错误的,正确的方法是使用 readlines()
。
修改后的代码如下:
def openfile():
file_in = tkinter.filedialog.askopenfile(title="打开一个Json文件", filetypes=[("JSON", ".json")])
data = []
for line in file_in.readlines():
dic = json.loads(line)
data.append(dic)
print(len(data))
这个函数会打开一个 Tkinter 的文件选择对话框,用户选择一个 JSON 文件后,读取文件内容,将每一行 JSON 转化为 python 的字典并放入一个列表中。最后输出该列表的长度。
这样处理后, data
就成为了一个易于处理的 python 的 List,里面包含了文件中所有 JSON 的字典数据。您可以修改代码,将其插入到 MongoDB 中,或者对其进行遍历和其他操作。