全栈工程师开发手册 (作者:栾鹏)

python教程全解

在json字符串和python对象的相互转化中,会进行下列变换。

会将python中字典的写法,转化为js中对象的写法。(没有区别)。
会将python中列表的写法,转化为js中array的写法。(没有区别)
会将python中unicode的写法,转化为js中string的写法。(与编码有关)
会将python中的int,long的写法,转化为js中number的写法。(没有区别)
会将python中的True的写法,转化为js中true的写法。(写法有区别)
会将python中的False的写法,转化为js中false的写法。(写法有区别)
会将python中的None的写法,转化为js中null的写法。(写法有区别)

反过来也是对应转换。

js中类型            Python中类型object             dict
array               list
string              unicode
number (int)        int, long
number (real)       float
true                True
false               False
null                None

python字典所有的键必须为字符串,值可以是任何对象。包括字典、列表、字符串、数值、布尔值以及null。

json库集成在了标准库中。使用import json即可引入。所以不用安装外部包。

python对象转化为json字符串、python对象存储成json文件

json.dumps 将 Python 对象编码成 JSON 字符串

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
  • dumps函数包含一些参数,可以使用参数让 JSON 数据格式化输出。

    sort_keys参数:是否对键值排序。sort_keys=True

    separators:分隔符。separators=(’,’, ': ') 参数:两个键值对间的分隔符,键和值中间的分隔符

    indent:缩进字符数。indent=10

    encoding:编码类型。encoding=“utf-8”

json.dump 将 Python 对象存储成 JSON文件

json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, separators=None,default=None, sort_keys=False, **kw)

测试用例。运行环境python3.6

import json
myobject = {'key2': {'key31': None,'key32': False,'key33': 13.6,},'key1': {'key22': ['value22_1', 'value22_2']}
}#将对象或对象数组转化为json字符串
jsonstr =json.dumps(myobject, indent=4,sort_keys=True)
print(jsonstr)#python对象或对象数组写入json文件:方法1
with open('data.json', 'w') as f:json.dump(myobject, f)#python对象或对象数组写入json文件:方法2
import io
f=io.open('data1.json', 'w', encoding='utf-8')
json.dump(myobject, f, ensure_ascii=False)

注意:测试发现,使用str(dict),转化为字符串为单引号,使用json.dumps转化为字符串为双引号

json字符串转化为python对象,python读取json文件

json.loads 将已编码的 JSON 字符串解码为 Python 对象

json.loads(s, *, encoding=None, cls=None, object_hook=None, parse_float=None,parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

json.load 将已编码的 JSON 文件解码为 Python 对象

json.load(fp, *, cls=None, object_hook=None, parse_float=None,parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

测试用例。运行环境python3.6

#coding:utf-8
import json
#将json字符串转化为对象或对象数组
jsonstr = '{"key2": {"key31": null, "key32": false, "key33": 13.6}, "key1": {"key22": ["value22_1", "value22_2"]}}'
obj = json.loads(jsonstr)
print(obj)#读取json文件转换成python对象或对象数组:方法1
with open('data1.json', 'r') as f:obj = json.load(f)print(obj)#读取json文件转换成python对象或对象数组:方法2
import io
f = io.open('data1.json', 'r', encoding='utf-8')
json_str = f.readline()   #读取文件内容
obj = json.loads(json_str)  #将json字符串转化为对象
print(obj)

python数据存储系列教程——python对象与json字符串的相互转化,json文件的存储与读取相关推荐

  1. Python数据分析学习系列 十三 Python建模库介绍

    Python数据分析学习系列 十三 Python建模库介绍 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下载 ...

  2. python数据存储系列教程——python(pandas)读写csv文件

    全栈工程师开发手册 (作者:栾鹏) python教程全解 CSV文件的规范 1.使用回车换行(两个字符)作为行分隔符,最后一行数据可以没有这两个字符.2.标题行是否需要,要双方显示约定3.每行记录的字 ...

  3. python数据挖掘案例系列教程——python实现搜索引擎

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 今天我们使用python实现一个网站搜索引擎.主要包含两个部分.网站数据库的生成.搜索引擎.其中搜索引擎部分我们使用单词频度算法.单词 ...

  4. python网络爬虫系列教程——python中requests库应用全解

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python中requests库的基础应用,网页数据挖掘的常用库之一.也就是说最主要的功能是从网页抓取数据. 使用前需要先联网安装reques ...

  5. 干货!小白入门Python数据科学全教程 Python大数据分析

    本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据工程师 ...

  6. python数据存储系列教程——python中redis数据库操作:连接、增删查改、多级路径

    全栈工程师开发手册 (作者:陈玓玏) python教程全解 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品 ...

  7. python数据存储系列教程——python中mongodb数据库操作:连接、增删查改、多级路径

    全栈工程师开发手册 (作者:陈玓玏) python教程全解 调试环境python3.6,调试python操作mongodb数据库,首先要在本地或服务器安装mongodb数据库.安装参考:http:// ...

  8. python数据存储系列教程——python中mysql数据库操作:连接、增删查改、指令执行

    全栈工程师开发手册 (作者:陈玓玏) python教程全解 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库.安装参考:http://blog ...

  9. python数据存储系列教程——python操作sqlite数据库:连接、增删查改、指令执行

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python操作sqlite数据库 sqlite数据库以.db格式的文件形式存在,所以不需要安装驱动和应用系统,在标准库中也集成了sqlite ...

最新文章

  1. Cracer渗透视频课程笔记——基础知识(2)
  2. qt for 3520a
  3. Android之在在EditText的xml里面配置了相关属性依然没有显示光标问题
  4. IOC操作Bean管理注解方式(完全注解开发)
  5. 漫画:如何实现大整数相乘?(下)
  6. oracle goldengate 数据库实例,案例:Oracle goldengate报错ggsci: error while loading shared libraries:...
  7. android改包名
  8. PHP手册总结《预定义变量》
  9. Java并发编程笔记
  10. DevCpp和VS2019安装armadillo库
  11. C# 简单管理系统模板 控制台应用程序
  12. 社交网络分析之关系图(原理+Python代码)
  13. 对于分布式消息队列我有话说
  14. kic炉温测试软件中文版,KIC炉温测试仪-KIC2000炉温测试
  15. day14_html和css
  16. TMC2208电机驱动简介
  17. component组件中的is属性居然有大用?
  18. 找不到AppData文件夹
  19. DDPM(Denoising Diffusion Probabilistic Models)扩散模型简述
  20. 零基础学习Python3——Python 安装

热门文章

  1. 有道口语大师APP评测:语音识别准确度低
  2. img src请求后台值值能判断_MVC中根据后台绝对路径读取图片并显示在IMG中
  3. 联想服务器虚拟化解决方案,联想虚拟化解决方案
  4. 最简单的基于DirectShow的示例:视频播放器图形界面版
  5. FFMPEG结构体分析:AVFormatContext
  6. C# 根据url获取文件流流
  7. c语言结构共用体的作用,浅谈C语言共用体和与结构体的区别
  8. springboot打成jar包,在windows上运行出现乱码
  9. Tomcat服务器报错IOException: Broken pipe
  10. hibernate4 could not initialize proxy - no Session