2.1 python文本处理-json

json格式是一种很便捷常用的数据格式,python的json宝也能很好的支持json格式文件的读取和数据处理

json基本使用

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)

将obj序列化为 JSON 格式化后写入文件对象fp中

  • skipkeys:如果为true时,不是基本类型((``str``, ``int``, ``float``, ``bool``, ``None``)
    )的字典的键会跳过,
  • ensure_ascii:为True时,输出保证将所有输入的非 ASCII 字符转义。否则原样输出
  • check_circular:为False时,循环引用检查会被跳过
  • allow_nan:为False时,在对严格 JSON 规格范围外的 float 类型值进行序列化时会抛出ValueError异常
  • indent:缩进等级。默认为None,使用最紧凑的方式。如果为0、负数或“”时,采用换行符缩进,
  • separators:是一个元组(item_separator, key_separator),分别表示键值对之间的分隔符和键-值之间的分隔符
  • default: 被指定时,其应该是一个函数,每当某个对象无法被序列化时它会被调用。它应该返回该对象的一个可以被 JSON 编码的版本,或者抛出TypeError异常
  • sort_keys:为True时,按照键的字典顺序排列
  • cls:重载JsonEncoder时需要指定

json.dumps

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)

将 obj 序列化为 JSON 格式字符串

json.load

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

将一个包含了json格式的文件对象反序列化为python对象

  • object_hook和object_pairs_hook是用来实现自定义编码器的,不做研究
  • parse_float:将与每个要解码 JSON 浮点数的字符串一同调用
  • parse_int:将与每个要解码 JSON 整数的字符串一同调用
  • parse_constant:将要与以下字符串中的一个一同调用: '-Infinity' , 'Infinity' , 'NaN' 。如果遇到无效的 JSON 数字则可以使用它引发异常

 json.loads

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

将一个json字符串反序列化为 Python 对象

 使用样例

import json

data = {'field': 'value'}
with open("./data.json", "w") as file:
    json.dump(data, fp=file)


with open("./data.json", "r") as file:
    data = json.load(file)


with open("./data.json", "r") as file:
    json_data = json.dumps(file.read())


with open("./data.json", "r") as file:
    json_data = json.loads(file.read())

你可能感兴趣的:(Python,python)