python基础:json格式文件

        处理json文件需要先导入json库,然后自定义字典数据内容。

        要想保存json文件,需要先定义save_json函数将以上的data数据转化为json文件,之后调用save_json函数,传入参数data=data与file_path=data.json,也就是转化后的文件将以“data.json”命名,成功运行则输出一个句子表示文件成功转化并保存。

import json

data = {"Name": "Galaxy", "Age": 404, "City": "Ic"}

def save_json(data,file_path):
    with open(file_path, 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=2)
save_json(data,"data.json")
print("Data has been seialized and save to 'data.json'.")

        要想读取json文件则简单定义一个read_json文件,然后调用它并输出即可:

def read_json(json_file):
    with open(json_file, 'r', encoding='utf-8') as fr:
        js = json.load(fr)
    return js
json_data=read_json("data.json")
print(json_data)

       运行程序之后,确实生成了data.json文件,以及能正常输出data数据:

Data has been seialized and save to 'data.json'.
{'Name': 'Galaxy', 'Age': 404, 'City': 'Ic'}

        补充:json.dump()函数:

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)
参数解释
  1. obj:要序列化的 Python 对象。例如,字典、列表等。
  2. fp:文件对象,必须以写入模式打开,并且支持写入字符串(str)而不是字节(bytes)。
关键字参数
  • skipkeys:如果为 True,则会跳过无法作为键的对象(例如非基本类型的键),默认为 False。如果遇到无法作为键的对象,则会抛出 TypeError 异常。

  • ensure_ascii:如果为 True(默认),则会确保输出的 JSON 字符串中所有非 ASCII 字符都会被转义。如果为 False,则会按原样输出这些字符。

  • check_circular:如果为 False,则不会检查容器类型的循环引用,可能导致 RecursionError 或其他错误。默认值为 True

  • allow_nan:如果为 False,则会严格遵守 JSON 规范,遇到超出范围的浮点数值(例如 NaNInfinity)会抛出 ValueError 异常。如果为 True,则会使用其 JavaScript 等价物(例如 NaNInfinity)来表示。默认值为 True

  • cls:如果指定,则使用自定义的 JSONEncoder 子类来序列化对象。默认使用 JSONEncoder 类。

  • indent:如果为非负整数或字符串,则会以缩进格式输出 JSON 数据。例如,indent=4 表示每一级缩进 4 个空格。indent='\t' 表示使用制表符缩进。默认值为 None,表示最紧凑的格式。

  • separators:指定分隔符的元组。例如,(',', ': ') 表示使用逗号和冒号分隔项目和键值对。默认情况下,如果 indentNone,则使用 (',', ': '),否则使用 (',', ':')

  • default:如果指定了该参数,它应该是一个函数,用于处理无法序列化的对象。该函数应该返回一个可序列化的对象或抛出 TypeError 异常。

  • sort_keys:如果为 True,则按键对字典进行排序。默认值为 False

  • **kw:其他参数。

         更多详细内容参考:json — JSON encoder and decoder — Python 3.12.4 documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值