python json方法详解_python详解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对象

48304ba5e6f9fe08f3fa1abda7d326ab.png

# 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'}]

AnJing

AnJing

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

dumps()方法

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

# coding:utf-8

import json

str = [{

"name":"AnJing",

"age":"26"

}]

print(type(str))

data = json.dumps(str)

print(type(data))

print(data)

代码结果:

[{"name": "AnJing", "age": "26"}]

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

# 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",

"性别": "男"

}

]

48304ba5e6f9fe08f3fa1abda7d326ab.png

load()方法

将文件内容转换成json数据

48304ba5e6f9fe08f3fa1abda7d326ab.png

# 导入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'}]

48304ba5e6f9fe08f3fa1abda7d326ab.png

dump()方法

将json数据写入到文件中

48304ba5e6f9fe08f3fa1abda7d326ab.png

# 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'}]

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

来源:

测试-安静

14234091.htmlhttps://www.cnblogs.com/qican/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值