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

来源:互联网 发布:veket linux安卓版 编辑:程序博客网 时间:2024/06/11 14:05

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

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              dictarray               liststring              unicodenumber (int)        int, longnumber (real)       floattrue                Truefalse               Falsenull                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 jsonmyobject = {    '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文件:方法1with open('data.json', 'w') as f:    json.dump(myobject, f)#python对象或对象数组写入json文件:方法2import iof=io.open('data1.json', 'w', encoding='utf-8')json.dump(myobject, f, ensure_ascii=False)

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-8import 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对象或对象数组:方法1with open('data1.json', 'r') as f:    obj = json.load(f)    print(obj)#读取json文件转换成python对象或对象数组:方法2import iof = io.open('data1.json', 'r', encoding='utf-8')json_str = f.readline()   #读取文件内容obj = json.loads(json_str)  #将json字符串转化为对象print(obj)
原创粉丝点击