当前位置: 首页 > news >正文

国家疫情最新政策优化网站哪个好

国家疫情最新政策,优化网站哪个好,余姚网站推广,毕业论文可不可以写网页设计的一、pickle(重点) pickle用起来很简单,说白了,就是把我们的python对象写入到文件中的一种解决方案,但是写入到文件的是bytes,所以这东西不是给别人看的,是给机器看的。 import pickleclass Cat:…

一、pickle(重点)

  pickle用起来很简单,说白了,就是把我们的python对象写入到文件中的一种解决方案,但是写入到文件的是bytes,所以这东西不是给别人看的,是给机器看的。

import pickleclass Cat:def __init__(self, name ,age):self.name = nameself.age = agedef catchMouse(self):print(self.name, "抓老鼠")c = Cat("jerry", 18)bs = pickle.dumps(c)   #序列化一个对象
print(bs)  #一堆二进制,看不懂

cc = pickle.loads(bs)  #把二进制反序列化成我们的对象
cc.catchMouse()  #jerry 抓老鼠

  pickle中的dumps可以序列化一个对象,loads可以反序列化一个对象,我们使用dump还可以直接把一个对象写入到文件中

# f = open("cat", mode="wb")
# pickle.dump(c, f) # 写入到文件中
# f.close()

f = open("cat", mode="rb")
cc = pickle.load(f) # 从文件中读取对象
cc.catchMouse()

  这里记住, 不能一行一行的读. 那真的要写入或者读取多个内容怎么办? 很简单. 装list里. 然后读取和写入都用list

lst = [Cat("jerry", 19), Cat("tommy", 20), Cat("alpha", 21)]f = open("cat", mode="wb")
pickle.dump(lst, f)f = open("cat", mode="rb")
ll = pickle.load(f)
for el in ll:el.catchMouse()

  记住一点, pickle序列化的内容是二进制的内容(bytes) 不是给人看的. 

 

二、shelve

  shelve提供python的持久化操作. 什么叫持久化操作呢? 说白话,就是把数据写到硬盘上。在操作shelve的时候非常的像操作一个字典. 这个东西到后期. 就像redis差不多.

import shelveshelf = shelve.open("sylar")
# shelf["jay"] = "周杰伦"
print(shelf['jay'])
shelf.close()

  感觉到了么. 这个鬼东西和字典差不多. 只不过你的字典是一个文件. 接下来, 我们存储一些复杂的数据

s = shelve.open("sylar")
# s["jay"] = {"name":"周杰伦", "age":18, "hobby":"哄小孩"}
print(s['jay'])
s.close()

  但是, 有坑

s = shelve.open("sylar")
s['jay']['name'] = "胡辣汤" # 尝试改变字典中的数据
s.close()s = shelve.open("sylar")
print(s['jay']) # 并没有改变
s.close()

  解决方案

s = shelve.open("sylar", writeback=True)
s['jay']['name'] = "胡辣汤" # 尝试改变字典中的数据
s.close()s = shelve.open("sylar")
print(s['jay']) # 改变了.
s.close()

  writeback=True可以动态的把我们修改的信息写入到文件中. 而且这个鬼东西还可以删除数据. 就像字典一样. 上一波操作

s = shelve.open("sylar", writeback=True)
del s['jay']
s.close()s = shelve.open("sylar")
print(s['jay']) # 报错了, 没有了
s.close()s = shelve.open("sylar", writeback=True)
s['jay'] = "周杰伦"
s['wlj'] = "王力宏"
s.close()s = shelve.open("sylar")
for k in s: # 像字典一样遍历print(k)
print(s.keys()) # 拿到所有key的集合
for k in s.keys():print(k)
for k, v in s.items(): # 像字典一样操作print(k, v)
s.close()

  综上shelve就当成字典来⽤就⾏了. 它比redis还简单.......

三、json(重点)

  json是我们前后端交互的枢纽. 相当于编程界的普通话. 大家沟通都用json. 为什么这样呢? 因为json的语法格式可以完美的表示出一个对象. 那什么是json: json全称javascript object notation. 翻译过来叫js对象简谱.

  如何把字典转化成我们的json格式的字符串呢?很简单, 上代码.

import json
dic = {"a": "女王", "b": "萝莉", "c": "小清新"}
s = json.dumps(dic) # 把字典转化成json字符串
print(s) # {"a": "\u5973\u738b", "b": "\u841d\u8389", "c":"\u5c0f\u6e05\u65b0"}

  结果很不友好啊. 那如何处理中文呢? 在dumps的时候给出另一个参数ensure_ascii=False就可以了

import json
dic = {"a": "女王", "b": "萝莉", "c": "小清新"}
s = json.dumps(dic, ensure_ascii=False) # 把字典转化成json字符串
print(s) # {"a": "女王", "b": "萝莉", "c": "小清新"}

  搞定了. 接下来. 前端给你传递信息了. 你要把前端传递过来的json字符串转化成字典. 

import jsons = '{"a": "女王", "b": "萝莉", "c": "小清新"}'
dic = json.loads(s)
print(type(dic), dic)

  搞定. 是不是很简单. 以上两个代码要求. 记住, 理解, 背会

  json也可以像pickle一样把序列化的结果写入到文件中. 

dic = {"a": "女王", "b": "萝莉", "c": "小清新"}
f = open("test.json", mode="w", encoding="utf-8")
json.dump(dic, f, ensure_ascii=False) # 把对象打散成json写入到文件中
f.close()

  同样也可以从也件中读取一个json

f = open("test.json", mode="r", encoding="utf-8")
dic = json.load(f)
f.close()
print(dic)

  注意. 我们可以向同一个文件中写入多个json串. 但是读不行

import jsonlst = [{"a": 1}, {"b": 2}, {"c": 3}]f = open("test.json", mode="w", encoding="utf-8")
for el in lst:json.dump(el, f)
f.close()

  注意, 此时文件中的内容是一行内容. 

{"a": 1}{"b": 2}{"c": 3}

  这在读取的时候是无法正常读取的. 那如何解决呢? 两套方案. 方案一. 把所有的内容准备好统进行写入和读取. 但这样处理, 如果数据量小还好. 数据量大的话, 就不够友好了. 方案二. 不用dump. 改用dumps和loads. 对每一行分别进行处理.

import jsonlst = [{"a": 1}, {"b": 2}, {"c": 3}]# 写入
f = open("test.json", mode="w", encoding="utf-8")
for el in lst:s = json.dumps(el, ensure_ascii=True) + "\n"f.write(s)
f.close()# 读取
f = open("test.json", mode="r", encoding="utf-8")
for line in f:dic = json.loads(line.strip())print(dic)
f.close()

 

四、configparser

  该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section)每个节可以有多个参数(键=值). 首先, 我们先看一个xxx服务器的配置文件

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes[bitbucket.org]
User = hg[topsecret.server.com]
Port = 50022
ForwardX11 = no

  我们用configparser就可以对这样的文件进行处理.首先, 是初始化

import configparserconfig = configparser.ConfigParser()
config['DEFAULT'] = {"sleep": 1000,"session-time-out": 30,"user-alive": 999999
}config['TEST-DB'] = {"db_ip": "192.168.17.189","port": "3306","u_name": "root","u_pwd": "123456"
}config['168-DB'] = {"db_ip": "152.163.18.168","port": "3306","u_name": "root","u_pwd": "123456"
}config['173-DB'] = {"db_ip": "152.163.18.173","port": "3306","u_name": "root","u_pwd": "123456"
}f = open("db.ini", mode="w")
config.write(f) # 写入文件
f.flush()
f.close()

  读取文件信息:

config = configparser.ConfigParser()config.read("db.ini") # 读取文件
print(config.sections()) # 获取到section. 章节...DEFAULT是给每个章节都配备的信息
print(config.get("DEFAULT", "SESSION-TIME-OUT")) # 从xxx章节中读取到xxx信息
# 也可以像字典一样操作
print(config["TEST-DB"]['DB_IP'])
print(config["173-DB"]["db_ip"])for k in config['168-DB']:print(k)for k, v in config["168-DB"].items():print(k, v)print(config.options('168-DB')) # 同for循环,找到'168-DB'下所有键
print(config.items('168-DB')) #找到'168-DB'下所有键值对
print(config.get('168-DB','db_ip')) # 152.163.18.168  get方法Section下的key对应的value

  增删改操作:

# 先读取. 然后修改. 最后写回文件
config = configparser.ConfigParser()
config.read("db.ini") # 读取文件# 添加一个章节
# config.add_section("189-DB")
# config["189-DB"] = {
# "db_ip": "167.76.22.189",
# "port": "3306",
# "u_name": "root",
# "u_pwd": "123456"
# }# 修改信息
config.set("168-DB", "db_ip", "10.10.10.168")# 删除章节
config.remove_section("173-DB")
# 删除元素信息
config.remove_option("168-DB", "u_name")# 写回文件
config.write(open("db.ini", mode="w"))

 

转载于:https://www.cnblogs.com/minusone/p/9965165.html

http://www.lbrq.cn/news/2586457.html

相关文章:

  • win2012做网站济南seo外贸网站建设
  • 企业信息的网站广告点击一次多少钱
  • 学做效果图的网站有哪些网络营销策划方案框架
  • 第五人格成都gg旺道网站排名优化
  • 商城网站开发多久沈阳seo网站推广
  • 展台设计网站推荐免费网站制作教程
  • 做网站不想用微软雅黑了怎么快速推广app
  • 深圳 手机网站建设互联网广告投放
  • 白城整站优化整合营销传播方案
  • 查logo的网站seo全网推广
  • wordpress 数据库地址seoul是哪个城市
  • 济南市商务局官方网站南沙seo培训
  • 厦门易尔通网站建设好吗seo模拟点击
  • 山东省日照市有专业做网站的seo入门书籍
  • 筑云网站投诉百度关键词优化软件如何
  • 自己动手制作网站自己怎样推广呢
  • 网站制作文案百度网站关键词优化
  • 平顶山做网站搜狗站长平台主动提交
  • linux WordPress上传插件需要ftp深圳seo优化推广公司
  • 知名网站制作案例企业网站托管
  • 网站项目需求分析seo站内优化最主要的是什么
  • 品牌建设网站特点网络营销的渠道有哪些
  • 网站建设完毕后怎么加后台网站怎样才能在百度被搜索到
  • 网站底部 图标cnzz站长统计工具
  • 一个人做网站 没有人写文章怎么办广州市最新消息
  • 如何在各个购物网站之间做差价seo网站优化外包
  • 怎么做网站外链企业培训十大热门课程
  • 大连建站公司2020国内十大小说网站排名
  • 专门做捷径网站seo排名优化的网站
  • 广告设计公司怎么找业务哈尔滨seo整站优化
  • 学习游戏制作记录(实现克隆攻击的克隆复制和水晶代替克隆)8.3
  • 信创及一次ORACLE到OB的信创迁移
  • Ubuntu22.4部署大模型前置安装
  • 每日五个pyecharts可视化图表-bars(2)
  • MC0364魔法链路
  • 力扣热题100---------206.反转链表