加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python详解json模块

发布时间:2020-12-20 10:42:38 所属栏目:Python 来源:网络整理
导读:我们在做工作中经常会使用到json模块,今天就简单介绍下json模块 ? 什么是json JSON ,全称为JavaScript Object Notation, 也就是JavaScript 对象标记,它通过对象和数组的组合米表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。json

  我们在做工作中经常会使用到json模块,今天就简单介绍下json模块

?

什么是json

JSON ,全称为JavaScript Object Notation, 也就是JavaScript 对象标记,它通过对象和数组的组合米表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。json模块在python中可以作为数据解析json

?

对象和数组

在JavaScript 语言中,一切都是对象。任何支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等,但是对象和数组是比较特殊且常用的两种类型

对象:它在JavaScript中是使用花括号{ }包裹起来的内容,数据结构为{ keyl : valuel,key2:value2}的键值对结构。在面向对象的语言中,key为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。

数组:数组在JavaScript中是方括号[]包裹起来的内容,数据结构为[ ”java ” ,” javascript ”,"vb " ]的索引结构。在JavaScript中, 数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引用得多。同样,值的类型可以是任意类型。

?

JSON对象格式

会发现和我们的字典格式是不是特别的一样

# 格式为{"name":"value"}
[{
"name":"AnJing","age":"26" }]

?

JSON简单使用

loads()方法

?使用方法loads()将 json文字转化成json对象

# coding:utf-8
import json
str = ‘‘‘
    [{
    "name":"AnJing","age":"26"
}]
‘‘‘
data = json.loads(str)
print(data)
print(type(data))
print(data[0][name])  # 通过下标进行选择
print(data[0].get(name))

代码结果:
[{name: AnJing,age: 26}]
<class list>
AnJing
AnJing

注意:在使用loads的时候json字符串必须要用双引号表示,否则会报错

(json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 5 (char 12)

dumps()方法

使用dumps()方法将json转换成字符串

# coding:utf-8
import json
str = [{
    "name":"AnJing","age":"26"
}]
print(type(str))
data = json.dumps(str)
print(type(data))
print(data)

代码结果:
<class list>
<class str>
[{"name": "AnJing","age": "26"}]

另外如果想要保存的文字好看点,我们可以增加一个参数indent,代表缩进字符个数,已经可以写入中文的时候不会乱码,加入ensure_ascii=False

# coding:utf-8
import json
str = [{
    "name":"安静","age":"26","性别":""
}]
# indent 表示缩进
# ensure_ascii=False 表示写入中文
with open(123.json,w,encoding=utf-8)as f:
    f.write(json.dumps(str,indent=2,ensure_ascii=False))


代码结果:
[
  {
    "name": "安静","age": "26","性别": ""
  }
]

load()方法

将文件内容转换成json数据

# 导入json模块
import json
str = [{
    "name":"AnJing","age":"26"
}]
# 通过dumps写入文件中
with open(123.json,w)as f:
    f.write(json.dumps(str))
# 通过load将数据转换成json
data = json.load(open(123.json,r))
print(data)

代码结果:
[{name: AnJing,age: 26}]

dump()方法

将json数据写入到文件中

# coding:utf-8
import json
str = [{
    "name":"AnJing","age":"26"
}]
# 通过dump写入到json中
json.dump(str,open(123.json,w))
# 通过load查看是否写入
data = json.load(open(123.json,r))
print(data)


代码结果:
[{name: AnJing,age: 26}]

?

?

简单的写了写json模块的使用方法,以及json的简单介绍,欢迎继续补充没有涉及到的知识。

?

感觉写的对您有帮助的,点个关注不迷路~~~~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读