json.dump 将dict数据写入json文件中
json.dumps 对数据进行编码,将python中的字典 转换为 字符串
代码如下:
import json
#字典
data = {
'id': '334455',
'姓名': 'MakerLiu',
'日期': '2023/4/15',
'地点': '深圳'
}
with open('datas.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False,indent=4)
#ensure_ascii=False 表示原文写入
#indent=4,表示美化json格式,缩进为4个空格
将对象转换为string,这样更容易传输
data2=json.dumps(data,ensure_ascii=False,indent=4)
print(data2)
print(type(data2))
方法中每个参数的作用
参数 作用
skipkeys 如果 skipkeys 是 true (默认为 False),那么那些不是基本对象(包括 str, int、 float、bool、None)的字典的键会被跳过;否则引发一个 TypeError。
ensure_ascii 如果 ensure_ascii 是 true (即默认值),输出保证将所有输入的非 ASCII 字符转义。如果 ensure_ascii 是 false,这些字符会原样输出。
check_circular 如果 check_circular 是为假值 (默认为 True),那么容器类型的循环引用检验会被跳过并且循 环引用会引发一个 OverflowError (或者更糟的情况)。
allow_nan 如果 allow_nan 是 false(默认为 True),那么在对严格 JSON 规格范围外的 float 类型 值(nan、inf 和 -inf)进行序列化时会引发一个 ValueError。如果 allow_nan 是 true, 则使用它们的 JavaScript 等价形式(NaN、Infinity 和 -Infinity)。
indent 如果 indent 是一个非负整数或者字符串,那么 JSON 数组元素和对象成员会被美化输出为该值指 定的缩进等级。如果缩进等级为零、负数或者 "",则只会添加换行符。None(默认值)选择最紧凑 的表达。使用一个正整数会让每一层缩进同样数量的空格。如果 *indent* 是一个字符串(比如 "\t"),那个字符串会被用于缩进每一层。
separators 当指定时,separators 应当是一个 (item_separator, key_separator) 元组。当 indent 为 None 时,默认值取 (', ', ': '),否则取 (',', ': ')。为了得到最紧凑的 JSON 表达式,你应该指定其为 (',', ')