Traitor 发表于 2022-3-11 21:17

Python多次写入字典的问题

https://img.hecady.com/images/2022/03/20220030110Y90d1e40ae9891.png

具体实现,就是这样写只能写入一次数据,我想的就是怎么样去实现去持续写入数据?
我试过多次写入但是会覆盖原有字典的数据

luyers 发表于 2022-3-11 21:17

def addInfo():
    num = input('请输入要录入的人数:')
    if num.isdigit():
      for i in range(int(num)):
            data = {}
            data['姓名'] = input('学生姓名\n')
            data['性别'] = input('性别\n')
            # ...
            with open('StudentInfo.json','a+') as f:
               f.write(json.dumps(data, ensure_ascii=False, indent=2) + '\n')
      print('录入完毕!')
    else:
      addInfo()

xian54966 发表于 2022-3-11 21:50

对open函数的理解有误。第二行没必要也用得不对。open的w模式从头开始写文件,有内容则覆盖。这就是只有一次的原因,因为再写的都覆盖了。open要搭配F.close()使用。而使用with open则不需要。3楼的代码值得你学习

Traitor 发表于 2022-3-11 21:58

xian54966 发表于 2022-3-11 21:50
对open函数的理解有误。第二行没必要也用得不对。open的w模式从头开始写文件,有内容则覆盖。这就是只有一 ...

其实我是想使用2行的代码来创建一个文件,但是后来看了一下好像 a+ 也可以直接创建。谢谢提醒.

doglove 发表于 2022-3-11 22:14

支持 ,学习学习。

傅粉何郎 发表于 2022-3-12 09:14

学习来了,学编程还得看吾爱破解,哈哈哈

lypxynok 发表于 2022-3-12 09:39

with open会自动关闭文件流,利用了上下文管理器

移情√似水 发表于 2022-3-12 11:03

学习了。参数的理解
页: [1]
查看完整版本: Python多次写入字典的问题