欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python用字典存储学生信息网_用Python存储字典的四种方法

发布时间:2024/10/5 python 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python用字典存储学生信息网_用Python存储字典的四种方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

0.直接字典和被字符串包裹的字典

d = {'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']},'产品':{'产品经理':['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'],'产品设计师':['网页产品设计师', '无线产品设计师']}}

s = "{'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']},'产品':{'产品经理':['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'],'产品设计师':['网页产品设计师', '无线产品设计师']}}"

1.eval + str

# -*- coding: utf-8 -*-

d = {'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']},'产品':{'产品经理':['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'],'产品设计师':['网页产品设计师', '无线产品设计师']}}

s = "{'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']},'产品':{'产品经理':['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'],'产品设计师':['网页产品设计师', '无线产品设计师']}}"

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['技术']['后端开发'])

if __name__ == '__main__':

save(d)

load()

save(s)

load()

['Java', 'C++', 'PHP']

['Java', 'C++', 'PHP']

2.json

# -*- coding: utf-8 -*-

import json

d = {'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']},'产品':{'产品经理':['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'],'产品设计师':['网页产品设计师', '无线产品设计师']}}

s = "{'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']},'产品':{'产品经理':['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'],'产品设计师':['网页产品设计师', '无线产品设计师']}}"

def save(dict):

if isinstance(dict, str):

dict = eval(dict)

with open('a.txt', 'w', encoding='utf-8') as f:

# f.write(str(dict)) # 直接这样存储的时候,读取时会报错JSONDecodeError,因为json读取需要双引号{"aa":"BB"},python使用的是单引号{'aa':'bb'}

str_ = json.dumps(dict, ensure_ascii=False) # TODO:dumps 使用单引号''的dict ——> 单引号''变双引号"" + 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()

{"技术": {"后端开发": ["Java", "C++", "PHP"], "移动开发": ["HTML5", "JavaScrpit"]}, "产品": {"产品经理": ["产品经理", "网页产品经理", "移动产品经理", "产品助理", "数据产品经理", "电商产品经理", "游戏策划", "产品实习生"], "产品设计师": ["网页产品设计师", "无线产品设计师"]}}

{"技术": {"后端开发": ["Java", "C++", "PHP"], "移动开发": ["HTML5", "JavaScrpit"]}, "产品": {"产品经理": ["产品经理", "网页产品经理", "移动产品经理", "产品助理", "数据产品经理", "电商产品经理", "游戏策划", "产品实习生"], "产品设计师": ["网页产品设计师", "无线产品设计师"]}}

{'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']}, '产品': {'产品经理': ['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'], '产品设计师': ['网页产品设计师', '无线产品设计师']}}

{"技术": {"后端开发": ["Java", "C++", "PHP"], "移动开发": ["HTML5", "JavaScrpit"]}, "产品": {"产品经理": ["产品经理", "网页产品经理", "移动产品经理", "产品助理", "数据产品经理", "电商产品经理", "游戏策划", "产品实习生"], "产品设计师": ["网页产品设计师", "无线产品设计师"]}}

{"技术": {"后端开发": ["Java", "C++", "PHP"], "移动开发": ["HTML5", "JavaScrpit"]}, "产品": {"产品经理": ["产品经理", "网页产品经理", "移动产品经理", "产品助理", "数据产品经理", "电商产品经理", "游戏策划", "产品实习生"], "产品设计师": ["网页产品设计师", "无线产品设计师"]}}

{'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']}, '产品': {'产品经理': ['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'], '产品设计师': ['网页产品设计师', '无线产品设计师']}}

3.pickle

参考:https://blog.csdn.net/yangtf07/article/details/81571371

# -*- coding: utf-8 -*-

import pickle

d = {'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']},'产品':{'产品经理':['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'],'产品设计师':['网页产品设计师', '无线产品设计师']}}

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"))

{'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']}, '产品': {'产品经理': ['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'], '产品设计师': ['网页产品设计师', '无线产品设计师']}}

4.numpy

# -*- coding: utf-8 -*-

import pickle

d = {'技术': {'后端开发': ['Java', 'C++', 'PHP'], '移动开发': ['HTML5', 'JavaScrpit']},'产品':{'产品经理':['产品经理', '网页产品经理', '移动产品经理', '产品助理', '数据产品经理', '电商产品经理', '游戏策划', '产品实习生'],'产品设计师':['网页产品设计师', '无线产品设计师']}}

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['技术']['移动开发'])

['HTML5', 'JavaScrpit']

扩展:Python 三种方法字符串转字典

总结

以上是生活随笔为你收集整理的python用字典存储学生信息网_用Python存储字典的四种方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。