python用字典存储学生信息网_用Python存储字典的四种方法
0.直接字典和被字符串包裹的字典
d = {'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']},'產(chǎn)品':{'產(chǎn)品經(jīng)理':['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'],'產(chǎn)品設(shè)計(jì)師':['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}
s = "{'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']},'產(chǎn)品':{'產(chǎn)品經(jīng)理':['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'],'產(chǎn)品設(shè)計(jì)師':['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}"
1.eval + str
# -*- coding: utf-8 -*-
d = {'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']},'產(chǎn)品':{'產(chǎn)品經(jīng)理':['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'],'產(chǎn)品設(shè)計(jì)師':['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}
s = "{'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']},'產(chǎn)品':{'產(chǎn)品經(jīng)理':['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'],'產(chǎn)品設(shè)計(jì)師':['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}"
def save(dict):
if isinstance(dict, str):
dict = eval(dict)
with open('a.txt', 'w', encoding='utf-8') as f:
f.write(str(dict)) # dict to str
def load():
with open('a.txt', 'r', encoding='utf-8') as f:
dict = eval(f.read()) # eval
print(dict['技術(shù)']['后端開發(fā)'])
if __name__ == '__main__':
save(d)
load()
save(s)
load()
['Java', 'C++', 'PHP']
['Java', 'C++', 'PHP']
2.json
# -*- coding: utf-8 -*-
import json
d = {'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']},'產(chǎn)品':{'產(chǎn)品經(jīng)理':['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'],'產(chǎn)品設(shè)計(jì)師':['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}
s = "{'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']},'產(chǎn)品':{'產(chǎn)品經(jīng)理':['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'],'產(chǎn)品設(shè)計(jì)師':['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}"
def save(dict):
if isinstance(dict, str):
dict = eval(dict)
with open('a.txt', 'w', encoding='utf-8') as f:
# f.write(str(dict)) # 直接這樣存儲(chǔ)的時(shí)候,讀取時(shí)會(huì)報(bào)錯(cuò)JSONDecodeError,因?yàn)閖son讀取需要雙引號(hào){"aa":"BB"},python使用的是單引號(hào){'aa':'bb'}
str_ = json.dumps(dict, ensure_ascii=False) # TODO:dumps 使用單引號(hào)''的dict ——> 單引號(hào)''變雙引號(hào)"" + dict變str
print(type(str_), str_)
f.write(str_)
def load():
with open('a.txt', 'r', encoding='utf-8') as f:
data = f.readline().strip()
print(type(data), data)
dict = json.loads(data)
print(type(dict),dict)
if __name__ == '__main__':
save(d)
load()
save(s)
load()
{"技術(shù)": {"后端開發(fā)": ["Java", "C++", "PHP"], "移動(dòng)開發(fā)": ["HTML5", "JavaScrpit"]}, "產(chǎn)品": {"產(chǎn)品經(jīng)理": ["產(chǎn)品經(jīng)理", "網(wǎng)頁(yè)產(chǎn)品經(jīng)理", "移動(dòng)產(chǎn)品經(jīng)理", "產(chǎn)品助理", "數(shù)據(jù)產(chǎn)品經(jīng)理", "電商產(chǎn)品經(jīng)理", "游戲策劃", "產(chǎn)品實(shí)習(xí)生"], "產(chǎn)品設(shè)計(jì)師": ["網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師", "無(wú)線產(chǎn)品設(shè)計(jì)師"]}}
{"技術(shù)": {"后端開發(fā)": ["Java", "C++", "PHP"], "移動(dòng)開發(fā)": ["HTML5", "JavaScrpit"]}, "產(chǎn)品": {"產(chǎn)品經(jīng)理": ["產(chǎn)品經(jīng)理", "網(wǎng)頁(yè)產(chǎn)品經(jīng)理", "移動(dòng)產(chǎn)品經(jīng)理", "產(chǎn)品助理", "數(shù)據(jù)產(chǎn)品經(jīng)理", "電商產(chǎn)品經(jīng)理", "游戲策劃", "產(chǎn)品實(shí)習(xí)生"], "產(chǎn)品設(shè)計(jì)師": ["網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師", "無(wú)線產(chǎn)品設(shè)計(jì)師"]}}
{'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']}, '產(chǎn)品': {'產(chǎn)品經(jīng)理': ['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'], '產(chǎn)品設(shè)計(jì)師': ['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}
{"技術(shù)": {"后端開發(fā)": ["Java", "C++", "PHP"], "移動(dòng)開發(fā)": ["HTML5", "JavaScrpit"]}, "產(chǎn)品": {"產(chǎn)品經(jīng)理": ["產(chǎn)品經(jīng)理", "網(wǎng)頁(yè)產(chǎn)品經(jīng)理", "移動(dòng)產(chǎn)品經(jīng)理", "產(chǎn)品助理", "數(shù)據(jù)產(chǎn)品經(jīng)理", "電商產(chǎn)品經(jīng)理", "游戲策劃", "產(chǎn)品實(shí)習(xí)生"], "產(chǎn)品設(shè)計(jì)師": ["網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師", "無(wú)線產(chǎn)品設(shè)計(jì)師"]}}
{"技術(shù)": {"后端開發(fā)": ["Java", "C++", "PHP"], "移動(dòng)開發(fā)": ["HTML5", "JavaScrpit"]}, "產(chǎn)品": {"產(chǎn)品經(jīng)理": ["產(chǎn)品經(jīng)理", "網(wǎng)頁(yè)產(chǎn)品經(jīng)理", "移動(dòng)產(chǎn)品經(jīng)理", "產(chǎn)品助理", "數(shù)據(jù)產(chǎn)品經(jīng)理", "電商產(chǎn)品經(jīng)理", "游戲策劃", "產(chǎn)品實(shí)習(xí)生"], "產(chǎn)品設(shè)計(jì)師": ["網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師", "無(wú)線產(chǎn)品設(shè)計(jì)師"]}}
{'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']}, '產(chǎn)品': {'產(chǎn)品經(jīng)理': ['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'], '產(chǎn)品設(shè)計(jì)師': ['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}
3.pickle
參考:https://blog.csdn.net/yangtf07/article/details/81571371
# -*- coding: utf-8 -*-
import pickle
d = {'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']},'產(chǎn)品':{'產(chǎn)品經(jīng)理':['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'],'產(chǎn)品設(shè)計(jì)師':['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}
def save_dict(obj, name):
with open(name + '.pkl', 'wb') as f:
pickle.dump(obj, f, pickle.HIGHEST_PROTOCOL)
def load_dict(name ):
with open(name + '.pkl', 'rb') as f:
return pickle.load(f)
if __name__ == '__main__':
save_dict(d, "a")
print(load_dict("a"))
{'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']}, '產(chǎn)品': {'產(chǎn)品經(jīng)理': ['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'], '產(chǎn)品設(shè)計(jì)師': ['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}
4.numpy
# -*- coding: utf-8 -*-
import pickle
d = {'技術(shù)': {'后端開發(fā)': ['Java', 'C++', 'PHP'], '移動(dòng)開發(fā)': ['HTML5', 'JavaScrpit']},'產(chǎn)品':{'產(chǎn)品經(jīng)理':['產(chǎn)品經(jīng)理', '網(wǎng)頁(yè)產(chǎn)品經(jīng)理', '移動(dòng)產(chǎn)品經(jīng)理', '產(chǎn)品助理', '數(shù)據(jù)產(chǎn)品經(jīng)理', '電商產(chǎn)品經(jīng)理', '游戲策劃', '產(chǎn)品實(shí)習(xí)生'],'產(chǎn)品設(shè)計(jì)師':['網(wǎng)頁(yè)產(chǎn)品設(shè)計(jì)師', '無(wú)線產(chǎn)品設(shè)計(jì)師']}}
import numpy as np
# Save
np.save('my_file.npy', d)
# Load
read_dictionary = np.load('my_file.npy', allow_pickle=True).item()
print(read_dictionary['技術(shù)']['移動(dòng)開發(fā)'])
['HTML5', 'JavaScrpit']
擴(kuò)展:Python 三種方法字符串轉(zhuǎn)字典
總結(jié)
以上是生活随笔為你收集整理的python用字典存储学生信息网_用Python存储字典的四种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 修改用户名_新华美育查找用户名及修改密码
- 下一篇: http发送16进制报文_阿里云物联网平