【python学习】基础篇-常用模块-

Python中的json模块用于处理JSON数据,提供了将Python对象转换为JSON字符串的方法(dumps),以及将JSON字符串解析为Python对象的方法(loads)。

以下是json模块的一些常用方法:

1、将Python对象obj转换为JSON字符串。

json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,
 			allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

可以设置一些可选参数,

skipkeys(bool):
默认为False,如果设置为True,则字典中缺少键的项将被跳过,而不是引发KeyError异常。
ensure_ascii(bool):
默认为True,如果设置为True,则输出的JSON字符串只包含ASCII字符。如果设置为False,则输出的JSON字符串可以包含非ASCII字符。
check_circular(bool):
默认为True,如果设置为True,则在检测到循环引用时会引发TypeError异常。如果设置为False,则不检查循环引用。
allow_nan(bool):
默认为True,如果设置为True,则允许NaN、Infinity和-Infinity这些特殊浮点值。如果设置为False,则不允许这些特殊浮点值。
cls(class):可选参数,
指定一个可调用对象来构造结果字符串。通常不需要使用此参数。
indent(int):可选参数,
指定缩进空格数。如果设置了该参数,则生成的JSON字符串将按照指定的缩进格式进行格式化。
separators(str):可选参数,
指定分隔符。如果设置了该参数,则生成的JSON字符串将按照指定的分隔符进行格式化。
default(callable):可选参数,
指定一个函数,当遇到无法序列化的对象时,将调用该函数并返回其结果。
sort_keys(bool):可选参数,
指定是否对字典的键进行排序。如果设置为True,则生成的JSON字符串中的字典键将按字母顺序排序。
**kw:可选参数,
用于传递其他关键字参数。

示例如下:

import json

data = {
    "name": "张三",
    "age": 30,
    "city": "北京"
}

json_str = json.dumps(data, ensure_ascii=False)
print(json_str)

2、将JSON字符串s解析为Python对象

json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, 
			parse_constant=None, object_pairs_hook=None, **kw)

可以设置一些可选参数,

s(str)
需要解析的JSON字符串。
encoding(str, optional)
指定编码方式,默认为None。
cls(class, optional)
指定解析后的对象类型,默认为None。
object_hook(callable, optional)
指定一个函数,用于转换字典中的值,默认为None。
parse_float(callable, optional)
指定一个函数,用于解析浮点数,默认为float()。
parse_int(callable, optional)
指定一个函数,用于解析整数,默认为int()。
parse_constant(callable, optional)
指定一个函数,用于解析常量,默认为None。
object_pairs_hook(callable, optional)
指定一个函数,用于转换字典中的键值对,默认为None**kw
可选参数,用于传递其他关键字参数

示例如下

import json

json_str = '{"name": "张三", "age": 30, "city": "北京"}'
data = json.loads(json_str)
print(data)

3、将Python对象obj序列化为JSON字符串并写入文件fp

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)

可以设置一些可选参数
如indent表示缩进空格数等。
示例如下

import json

data = {
    "name": "张三",
    "age": 30,
    "city": "北京"
}

with open('data.json', 'w') as f:
    json.dump(data, f, ensure_ascii=False)

4、从文件fp中读取JSON字符串并解析为Python对象

json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, 
			parse_constant=None, object_pairs_hook=None, **kw)

可以设置一些可选参数,
同上
示例如下

import json

with open('data.json', 'r') as f:
    data = json.load(f)
    print(data)

你可能感兴趣的:(【Python学习-基础篇】,python,学习)