Zijeak 2019-11-18 23:29 采纳率: 33.3%
浏览 259

Tkinter使用filedialog读入JSON文件返回文件流如何处理

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'

我知道是文件流没有这个方法,我想知道如何处理

  • 写回答

1条回答

  • 憧憬blog 2023-03-15 05:01
    关注

    你的代码中 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 中,或者对其进行遍历和其他操作。

    评论

报告相同问题?

悬赏问题

  • ¥30 vmware exsi重置后的密码
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面