鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 青出于蓝

[已解决]关于字典的问题

[复制链接]
发表于 2020-5-22 20:53:25 | 显示全部楼层
青出于蓝 发表于 2020-5-22 20:43
当时脑积水,现在发现有不少问题。ab+是没有问题了,怎么添加pkl文件里字典的键与值呢?

就按照你那样添加吧 加个循环就可以持续添加了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 20:55:54 | 显示全部楼层
青出于蓝 发表于 2020-5-22 20:43
当时脑积水,现在发现有不少问题。ab+是没有问题了,怎么添加pkl文件里字典的键与值呢?

对了 input 本身就是 以字符串输出的  你不用再次 str 转为字符串了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 20:58:32 | 显示全部楼层
青出于蓝 发表于 2020-5-22 20:43
当时脑积水,现在发现有不少问题。ab+是没有问题了,怎么添加pkl文件里字典的键与值呢?

全读到内存里,再写回去。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 21:08:57 | 显示全部楼层
Twilight6 发表于 2020-5-22 20:53
就按照你那样添加吧 加个循环就可以持续添加了

循环是for循环还是while循环,我是萌新,有点蠢,见谅~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 21:09:32 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-22 20:58
全读到内存里,再写回去。

不懂,能写个代码吗~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 21:10:22 | 显示全部楼层
青出于蓝 发表于 2020-5-22 21:08
循环是for循环还是while循环,我是萌新,有点蠢,见谅~~

while True:
    b=input('请输入您要永久存储某人的名字(输入Esc退出):')
    if b == 'Esc':
        break
    c=input('请输入您要永久存储的某人相关信息:')
    city={b:c}
    pickle.dump(city,a)
问题差不多都解决了,记得设置最佳 嘿嘿~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 21:12:37 | 显示全部楼层
Twilight6 发表于 2020-5-22 21:10
问题差不多都解决了,记得设置最佳 嘿嘿~~~

感谢感谢~~~~我试试~~~
答案可靠,最佳是免不了达~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 21:33:07 | 显示全部楼层
Twilight6 发表于 2020-5-22 21:10
问题差不多都解决了,记得设置最佳 嘿嘿~~~

还是不行啊,用
import pickle
pickle_file=open('pickle_file.pkl','rb')
a=pickle.load(pickle_file)
print(a)
打开文件后,显示的还是只有最后的那个输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 21:39:05 | 显示全部楼层
青出于蓝 发表于 2020-5-22 21:33
还是不行啊,用打开文件后,显示的还是只有最后的那个输入

你只pickle.load 一次肯定啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 21:47:23 | 显示全部楼层
Twilight6 发表于 2020-5-22 21:39
你只pickle.load 一次肯定啊

这是另一个文件,我储存了很多数据后查看,没有。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 21:48:02 | 显示全部楼层    本楼为最佳答案   
青出于蓝 发表于 2020-5-22 21:33
还是不行啊,用打开文件后,显示的还是只有最后的那个输入
try:
    while True:
        print(pickle.load(a))
except:
    print('全部打印完成')

你打印要这样打的  你每次dump 一次 是dump进去一个字典  打印顺序也是和你dump进去顺序是一样的

你一次 pickle.load(a) 只能打印一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 21:50:13 | 显示全部楼层
您好像还不懂。。。
发个详细点的
import pickle
print('永久储存内容输入地点!!!\n输入后不支持修改,请慎重填写!')
a=open('pickle_file.pkl','ab+')
while True:
    b=input('请输入您要永久存储某人的名字(输入Esc退出):')
    if b == 'Esc':
        break
    c=input('请输入您要永久存储的某人相关信息:')
    city={b:c}
    pickle.dump(city,a)
a.close()
这是输入并保存数据
import pickle
print('永久存储内容查询地点!!!\n认真填写哦~~ ')
pickle_file=open('pickle_file.pkl','rb')
city=pickle.load(pickle_file)
a=input('请输入您要查询内容的标签:')
b=city[a]
print('这是这个标签的内容:\n'+str(b))
这是调用数据
import pickle
pickle_file=open('pickle_file.pkl','rb')
a=pickle.load(pickle_file)
print(a)
这个是查看所有数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-21 04:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表