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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵