json 模块

1. 基本概念
1.1 JsonJavascript

JSON, 全称JavaScript Object Notation,它通过对象和数组的组合来表示数据。在JavaScript中一切都是对象,因此,任何支持的类型都可以通过JSON来表示,常用的类型有数据和对象。

JavaScript中,对象用{}表示,例如{key1:value1, key2:value2...},数组用[],例如["jack", "hong",...]

一个JSON对象可以写成如下,[]{}可自由嵌套组合

[{
       "name": "bob",
       "gender": "male",
       "birthday": "1992-10-18"
},{
       "name": "john",
       "gender": "female",
       "birthday": "1995-10-18"
}]
1.2 json对象和python中字典的区别

相同点
    两者在写法上是一样的。
不同点

  • 1)字典是一种数据结构,json是一种格式;
  • 2)字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性
  • 3)json是格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号,不能使用单引号,但字典就无所谓了

python提供了json模块,可以方便的把json格式的字符串转化为python的数据结构。

2. 调用json.loads()json文本字符串转为python中的数据结构
2. 1 基本例子
import json

# 三个引号也是字符串
str = '''
[{
       "name": "bob",
       "gender": "male",
       "birthday": "1992-10-18"
},{
       "name": "john",
       "gender": "female",
       "birthday": "1995-10-18"
}]
''' 

print(type(str))
data = json.loads(str)
print(data)
print(type(data))

输出结果:

<class 'str'>
[{'gender': 'male', 'name': 'bob', 'birthday': '1992-10-18'}, {'gender': 'female', 'name': 'john', 'birthday': '1995-10-18'}]
<class 'list'>

这里使用loads()方法将json字符串转化python列表,那么可用索引获得相应值

data[0]['name']
data[0].get('name')   # 字典都可以用get()方法来获取相应的值

结果都是 bob,但推荐使用第二种;因为使用get()方法,即使键名不存在,也不会报错,而是返回None,如下

data[0].get('age')
data[0].get('age', 25)

# 输出如下
None
25  # key不存在时,返回默认值

注意:
变量str中的数据需要用双引号来包着,不能用单引号,否则会报错

2.2 从文件中读取字符串内容,再用loads()转化为列表

比如还用上面变量str中的字符串,文件名为data.json

import json

with open('data.json', 'r') as file:
   str = file.read()
   data = json.loads(str)
   print(data)
3. 调用json.dumps()
3.1 用dumps()方法将列表转化为字符串,再用write()方法写入文本
import json

data = [{
       'name' : 'bob',
       'gender': 'male',
       'birthday': '1992-10-19'
}]

with open('data.json', 'w') as file:
   file.write(json.dumps(data))

data.json的文本内容为:

[{"name": "bob", "gender": "male", "birthday": "1992-10-19"}]
3.2 如果想保存JSON格式,可以加一个参数indent,代表缩进字符个数
with open('data.json', 'w') as file:
   file.write(json.dumps(data, indent=2))

得到的data.json文本内容为

[
 {
   "name": "bob",
   "gender": "male",
   "birthday": "1992-10-19"
 }
]

3.3. 有中文的情况下,需要指定ensure_asciiFalse, 并且规定文件输出的编码
with open('data.json', 'w', encoding='utf-8') as file:
   file.write(json.dumps(data, indent=2, ensure_ascii=False))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,你想了解关于Python中的json模块的一些信息,对吧? json模块是Python标准库中的一个模块,用于解析和生成JSON(JavaScript Object Notation)数据格式。JSON是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。 使用json模块,可以将Python对象(如字典、列表等)与JSON数据格式进行相互转换。具体来说,可以使用json.dumps()函数将Python对象转换为JSON格式的字符串,使用json.loads()函数将JSON格式的字符串转换为Python对象。 下面是一个简单的示例代码,演示了如何使用json模块将Python对象转换为JSON格式的字符串,并将JSON格式的字符串转换为Python对象: ```python import json # 将Python对象转换为JSON格式的字符串 data = {"name": "Alice", "age": 30} json_str = json.dumps(data) print(json_str) # 输出: {"name": "Alice", "age": 30} # 将JSON格式的字符串转换为Python对象 data2 = json.loads(json_str) print(data2) # 输出: {'name': 'Alice', 'age': 30} ``` 希望这个简要的介绍能够帮助你更好地了解Python中的json模块。 ### 回答2: Python的json模块是用来处理JSON数据的模块JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将数据从一个系统传递到另一个系统。 通过json模块,我们可以将Python的数据结构(如字典、列表)转换为JSON格式的字符串,并且可以将JSON格式的字符串转换为Python的数据结构。json模块提供了loads()函数和dumps()函数来完成这两种转换。 loads()函数可以将JSON格式的字符串转换为Python的数据结构。例如,将'{"name": "Amy", "age": 18}'这样的JSON字符串转换为一个字典{'name': 'Amy', 'age': 18}'。 dumps()函数可以将Python的数据结构转换为JSON格式的字符串。例如,将字典{'name': 'Amy', 'age': 18}'转换为'{"name": "Amy", "age": 18}'这样的JSON字符串。 除了基本的转换功能,json模块还提供了其他一些功能,如处理JSON中的null值、将JSON数据写入文件、从文件读取JSON数据等。 总之,json模块在Python中起着重要的作用,它可以方便地将Python的数据结构与JSON格式进行互相转换,使得数据在不同系统之间的传递更加便捷。 ### 回答3: Python的json模块是用来处理JSON(JavaScript Object Notation)数据的模块JSON是一种常用的数据格式,它以键值对的形式表示数据,并且易于阅读和解析。 json模块提供了一些函数和方法,用于将Python对象转换为JSON格式的字符串,并且可以将JSON字符串转换回Python对象。它还可以简化与JSON数据的交互,使得读取、写入和解析JSON数据变得更加方便。 使用json模块,可以对JSON数据进行以下操作: 1. 序列化:将Python对象转换为JSON字符串。可以使用`json.dumps()`函数来实现。例如,将字典对象转换为JSON字符串:`json.dumps({'name': 'John', 'age': 25})`。 2. 反序列化:将JSON字符串转换回Python对象。可以使用`json.loads()`函数来实现。例如,将JSON字符串转换为字典对象:`json.loads('{"name": "John", "age": 25}')`。 3. 读取JSON文件:可以使用`json.load()`函数从JSON文件中读取数据,并将其转换为Python对象。 4. 写入JSON文件:可以使用`json.dump()`函数将Python对象写入JSON文件中。 json模块还提供了其他一些功能,如处理嵌套JSON数据、处理特殊数据类型(如日期、日期时间等)以及自定义编码和解码规则等。 总之,Python的json模块提供了一种方便和灵活的方式来处理JSON数据。无论是将Python对象序列化为JSON字符串,还是将JSON字符串反序列化为Python对象,json模块都是一个十分实用的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值