python中的json到底怎么用? -凯发k8官方网
前言
最近在学习python爬虫,在对数据进行持久化存储的时候,会选择使用json格式的数据进行存储,由此就引发了一个问题,python中的json库到底咋用?
以前使用javascript中json.stringfy和json.parse倒是用的飞起。
到了python中使用json库就不会用了,这不行!!!
必须解决这个问题,由此,经过学习后,就产生了下文。
内容
简介
json是一种轻量级的数据交换格式。
核心方法
python中的json库核心方法只有4个
- json.dump
- json.dumps
- json.load
- json.loads
dump在计算机英语中是 转存、导出、保存 的意思
那么就很好理解了。
dumps ,拆解开来,dump string , 转化为字符流的数据
现在,我们来看一段代码:
dic = {'name': 'tom',"age": 18,"friends": ('mick','jerry'),'text': 'hello world'}# obj --> jsonres = json.dumps(dic)print(res)# 结果:# {"name": "tom", "age": 18, "friends": ["mick", "jerry"], "text": "hello world"}json中字符串对应的使用的是双引号,所以 python中的 ‘name’ 变成了 “name”
python中tuple对应的是json中的arr,所以出现了以下变化,( ‘mick’, ‘jerry’ ) — >[“mick”, “jerry”]
那么接下来我们试试dump的操作。
dump的操作实现的功能是将python对象转化成json数据并存储到文件中。
dic = {'name': 'tom',"age": 18,"friends": ('mick','jerry'),'text': 'hello world'}fp = open('./dic.json', 'w', encoding='utf-8')# obj --> json 并且将json写入文件json.dump(dic, fp, ensure_ascii=false)# fp = file place 作用是指定文件位置和读写方式运行这段代码后,自然就会生成 dic.json的文件,内容如下所示
load的含义是加载,通过上面的学习,可以以此类推 load 和 loads方法。
dump , 将python对象转换成json数据,并向文件中保存json数据。
load,从文件中读取json数据,并转化成python对象。
dumps,python字符流转化成 json数据流, 简单的讲,python obj — > json
loads, json数据流 加载成python字符流,简单的讲,json—> python obj
下面是一组实例:
使用json.loads方法:
# 这是一个json格式的字符串json_text = '{"name": "tom", "age": 18, "friends": ["mick", "jerry"], "text": "hello world"}'# loads = load from stringres = json.loads(json_text)print(res)# 结果:{'name': 'tom', 'age': 18, 'friends': ['mick', 'jerry'], 'text': 'hello world'}print(type(res))# 结果:使用json.load方法:
fp = open('./dic.json', 'r', encoding='utf-8')# 从文件中读取json数据res = json.load(fp)print(res)# 结果:{'name': 'tom', 'age': 18, 'friends': ['mick', 'jerry'], 'text': 'hello world'}print(type(res))# 结果:dic.json数据如下:
总结
可以简单的理解,loads, 加了s就是从字符流中加载,不加s就是从文件流中加载。
所以json.load(fp) , 第一个参数fp指定的是文件的位置,同时fp是必传参数,不传就报错。
dump和dumps同理。
特别注意:
需要特别注意的是dump在对中文进行保存的时候,中文会被默认转化成unicode编码
fp = open('./dic.json', 'w', encoding='utf-8')# 张三 --- > "\u5f20\u4e09" 默认中文会被转化成unicode编码dic = {'name': '张三','age': 18}json.dump(dic, fp)运行后,可以明显感受到 中文变成了unicode编码,解决办法。
添加关键词,ensure_ascii=false ,这样就不会自动转化成unicode编码了。
fp = open('./dic.json', 'w', encoding='utf-8')# 张三 --- > "\u5f20\u4e09" 默认中文会被转化成unicode编码dic = {'name': '张三','age': 18}# 这里加了 ensure_ascii=falsejson.dump(dic, fp, ensure_ascii=false)此时中文就能正常显示了。
附1:python和json对照表
总结
以上是凯发k8官方网为你收集整理的python中的json到底怎么用?的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: 【图文教程】ubuntu softwar