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

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记