首页 > 编程语言 >Python之json模块

Python之json模块

时间:2023-03-19 23:24:00浏览次数:27  
标签:None obj Python JSON json 模块 True

1.python的json模块介绍

Python 的 json 模块提供了处理 JSON 数据的功能。JSON(JavaScript Object Notation)是一种轻量级的文本数据格式,使用类似于 JavaScript 对象的方式表示数据。本文将详细介绍 json 模块的所有方法分类,以及含有示例代码。

2. JSON 编码与解码

json 模块提供了将 JSON 数据编码为 Python 对象和将 Python 对象解码为 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):将 Python 对象 obj 转换成 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):将 Python 对象 obj 转换成 JSON 格式后写入文件对象 fp 中。
  • loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):将 JSON 格式的字符串 s 转换成 Python 对象。 **
  • **load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):从文件对象 fp 中读取 JSON 数据并将其转换成 Python 对象。
import json

# 实现自定义的对象转换方法
def from_json_string(json_string):
    data = json.loads(json_string, object_hook=convert_date)
    return data

def convert_date(obj):
    if '__type__' in obj and obj['__type__'] == 'datetime':
        return datetime.strptime(obj['isoformat'], '%Y-%m-%dT%H:%M:%S.%f')
    return obj

# 将 JSON 字符串转换成 Python 对象
json_str = '{"name": "Alice", "age": 25, "birthday": {"__type__": "datetime", "isoformat": "1996-12-20T08:00:00.000000"}}'
data = from_json_string(json_str)
print(data)  # {'name': 'Alice', 'age': 25, 'birthday': datetime.datetime(1996, 12, 20, 8, 0)}

3. JSON 编码的高级选项

json 模块提供了一些高级选项,允许用户更精细地控制 JSON 编码器的行为:

  • ensure_ascii:指定是否使用 ASCII 码转义非 ASCII 字符,默认为 True。
  • allow_nan:指定是否允许编码 NaN 和 Infinity,默认为 True。
  • indent:指定输出格式中缩进的空格数。
  • sort_keys:指定是否按照键的字典序排序输出。
import json

# 将 Python 对象转换成 JSON 字符串
data = {
    "name": "Alice",
    "age": 25,
    "city": "Shanghai",
    "scores": {
        "math": 90,
        "physics": 85,
        "chemistry": 95
    }
}
json_str = json.dumps(data, ensure_ascii=False, indent=2, sort_keys=True)
print(json_str)

标签:None,obj,Python,JSON,json,模块,True
From: https://www.cnblogs.com/zouzhibin/p/17234800.html

相关文章

  • Python之random模块
    1.python的random模块介绍Python的random模块是用于生成随机数的标准库,支持生成伪随机数、shuffle操作和随机选择操作等。下面是random模块的方法分类介绍2.生成随机数......
  • Python format 格式化函数
    Python2.6开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。format函数可以接受不限个参......
  • Python之math模块
    1.python的math模块介绍Python的math模块是一个标准库,提供了一些数学函数和常量,涵盖了数学中的许多常见问题。2.数学常量math模块提供了以下数学常量:math.e:自然常数......
  • python商品零售购物篮分析
    1#-*-coding:utf-8-*-23#代码8-1查看数据特征45importnumpyasnp6importpandasaspd78inputfile=r'C:\Users\86184\Desktop\文件集\d......
  • GnuRadio-常见模块
    1、信号波形生成器(WaveformGenerators)(1)常数信源(ConstantSource)(2)噪声信源(NoiseSource)(3)信号源(SignalSource)例如正弦信号、方波信号等2、调制器(Modulators)(1)AM解调(AMDemo......
  • Pycharm和Python到底啥关系?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【厚德载物】问了一个Python基础的问题,这里拿出来给大家分享下。初学者遇到这种的,可能会有点困惑。二、实现过程这......
  • 三分钟 ChatGPT 接入微信机器人,1行Python代码就够了~
    大家好,这里是程序员晚枫。去年开发了一个开源项目:PyOfficeRobot,微信聊天机器人。今年ChatGPT大火,很多朋友在后台提问:能不能把微信机器人和ChatGPT加在一起?1行代码就可以......
  • # yyds干货盘点 # Pycharm和Python到底啥关系?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【厚德载物】问了一个​​Python​​基础的问题,这里拿出来给大家分享下。初学者遇到这种的,可能会有点困惑。二、实现过程......
  • 最新 umi4-max 如何使用 webpack5 联邦模块
    新项目用umi4-max搭建,部分功能想要使用其他项目的功能,不想重新开发,想到了使用webpack5的联邦模块,可以直接引用其他项目代码来实现共享代码。理想很美好,现实很残酷。直......
  • python 读STATA
    importpandasaspdfromsqlalchemyimportcreate_engine#readintheStatalfiledf=pd.read_stata('1.dta')#createaconnectiontotheMySQLdatabasee......