资讯专栏INFORMATION COLUMN

【module】json

scwang90 / 400人阅读

摘要:对象标记是一种轻量级的数据交换格式。的数据格式其实就是里面的字典格式,里面可以包含方括号括起来的数组,也就是里面的列表。

json and picle

​ JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。

在python中,有专门处理json格式的模块—— json 和 picle模块

Json 模块提供了四个方法: dumps、dump、loads、load

pickle 模块也提供了四个功能:dumps、dump、loads、load

json 总结:

json 序列化操作方法:

dumps:无文件操作

dump:序列化+写入文件

json反序列话方法:

loads:无文件操作

load:读文件+反序列化

json模块序列化的数据更通用

picle模块序列化的数据仅Python可用,但功能强大,可以序列化函数

json模块可以序列化和反序列化的数据类型见Python对象(obj)与json对象的对应关系表

格式化写入文件利用 indent = 4

dumps and dump

dumps and dump 序列化方法

dumps 只完成了序列化str

dump必须传文件描述符,将序列化的str保存到文件中

代码:

>>> import json
>>> json.dumps([]) # dumps可以格式化所有的基本数据类型为字符串
"[]"
>>> json.dumps(1) # 数字
"1"
>>> json.dumps("1") # 字符串
""1""
>>> dict = {"name":"tom","age":23}
>>> json.dumps(dict) # 字典
"{"name": "tom", "age": 23}"
a = {"name":"Tom", "age":23}
with open("test.json", "w", encoding="utf-8") as f:
    f.write(json.dumps(a,indent=4))
# indent 格式化保存字典,默认为None,小于0为零个空格
# json.dump(a,f,indent=4) #和上面的效果一样    
loads and load

loads and load 反序列化方法

loads 只完成了反序列化

load 只接受文件描述符,完成了读取文件和反序列化

代码:

>>> json.loads("{"name":"Tom", "age":23}")
{"age": 23, "name": "Tom"}

with open("test.json","r",encoding="utf-8") as f:
    aa = json.load(f.read())
    f.seek(0)
    bb = json.load(f)
print(aa)
print(bb)

json and picle 模块

json模块和picle模块都有 dumps、dump、loads、load四种方法,而且用法一样。

json模块序列化出来的是通用格式,其它编程语言都认识,就是普通的字符串

picle模块序列化出来的只有python可以认识,其他编程语言不认识的,表现为乱码

picle可以序列化函数,但是其他文件想用该函数,在该文件中需要有该文件的定义(定义和参数必须相同,内容可以不同)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44603.html

相关文章

  • package.json文件各字段的说明

    摘要:字段由脚本命令组成的字典,这些命令运行在包的各个生命周期中。在打包过程中,如果遇到字段会优先使用字段表示的路径下的文件,如果不存在,则用字段表示的作为入口,并按照的规范打包。其中还分析了文件中字段和字段的不同以及和两个字段的区别。 所有用npm下载的包或者要上传至npm的模块都会有一个package.json文件,这个文件总是存在于模块(或者包)的根目录下,这个文件到底是干嘛的,现在就...

    yzd 评论0 收藏0
  • 2018 年了,你还是只会 npm install 吗

    摘要:无需手动拷贝文件或者创建软链接到目录,有更优雅的解决方案。这是因为识别协议的,得知这个包需要直接从文件系统中获取,会自动创建软链接到中,完成安装过程。 nodejs 社区乃至 Web 前端工程化领域发展到今天,作为 node 自带的包管理工具的 npm 已经成为每个前端开发者必备的工具。但是现实状况是,我们很多人对这个nodejs基础设施的使用和了解还停留在: 会用 npm insta...

    libxd 评论0 收藏0
  • require源码阅读

    require gitlab mudule对象化 require最终会把每个模块都转化为对象 function Module(id, parent) { this.id = id; this.exports = {}; this.parent = parent; updateChildren(parent, this, false); this.filena...

    Batkid 评论0 收藏0
  • package.json 中的 Module 字段是干嘛的

    摘要:为何有查阅了的文档,并没有找到字段的定义,直到才知道它是中最早就提出的概念。况且目前大部分仍是采用,所以便使用了另一个字段。所以目前主流的打包工具都是支持的,鉴于其优点,字段很有可能加入的规范之中。 引入 最近团队的一个同学在搞 npm library 源码的调试插件,因为内部的一个组件库含有大量的逻辑,在某个项目中不经意就出现一个磨人的 bug,但是组件库发布都是打包编译后的代码,而...

    gnehc 评论0 收藏0
  • 让CSS更完美: PostCSS-modules

    摘要:起初只是一个美化文档的工具,但是事情到年发生了变化。对于来说,这意味着有问题的布局。和朝夕相伴的有和最终确定的。他们通过增加前缀的办法,解决了命名冲突的问题。长长的前缀将成为历史,欢迎来到未来的世界。 译者注(GeoffZhu): 这篇适合一些使用过预处理CSS的开发者,比如less,sass或stylus,如果你都没用过,那你一定不是个好司机。在PostCSS中早就可以使用CSS M...

    Barry_Ng 评论0 收藏0
  • 通过源码解析 Node.js 中一个文件被 require 后所发生的故事

    摘要:在中,要说如果有几乎会在每一个文件都要用到的一个全局函数和一个全局对象,那应该是非和莫属了。它们是模块机制的基石。若仍未返回,则为指定的模块路径依次加上,和,判断是否存在,若存在则返回拼接后的路径。 在 Node.js 中,要说如果有几乎会在每一个文件都要用到的一个全局函数和一个全局对象,那应该是非 require 和 module.exports 莫属了。它们是 Node.js 模块...

    lcodecorex 评论0 收藏0

发表评论

0条评论

scwang90

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<