python json模块核心方法总结

# python json模块核心方法总结

一.核心的方法

  1. json.dump()
  2. json.dumps()
  3. json.load()
  4. json.loads()

1.json.dumps()

dump在计算机中,是转存、导出、保存的意思,那么dumps,即dump string,将python对象的数据转换为josn字符流的数据

dic = {
        'name': 'tom',
        "age": 18,
        "friends": (
            'mick',
            'jerry'
        ),
        'text': 'hello world'
    }

    # obj --> json
    res = json.dumps(dic)
    print(res)
    # 结果:
    # {"name": "tom", "age": 18, "friends": ["mick", "jerry"], "text": "hello world"}

json中字符串对应的使用的是双引号,所以 python中的 ‘name’ 变成了 “name”;python中tuple对应的是json中的arr,所以出现了以下变化,( ‘mick’, ‘jerry’ ) — >[“mick”, “jerry”]

2.json.dump()

dump的操作实现的功能是将python对象转化成json数据,并存储到文件中

dic = {
        'name': 'tom',
        "age": 18,
        "friends": (
            'mick',
            'jerry'
        ),
        'text': 'hello world'
    }

    fp = open('./dic.json', 'w', encoding='utf-8')
    # obj --> json 并且将json写入文件
    json.dump(dic, fp, ensure_ascii=False)
    # fp = file place 作用是指定文件位置和读写方式

3.json.load()

load的含义是加载,json.load()意思是,从文件中读取到json数据,并转化为python数据

    fp = open('./dic.json', 'r', encoding='utf-8')
    # 从文件中读取json数据
    res = json.load(fp)
    print(res)
    # 结果:{'name': 'tom', 'age': 18, 'friends': ['mick', 'jerry'], 'text': 'hello world'}
    print(type(res))
    # 结果:<class 'dict'>

4.json.loads()

即doad string,将json数据加载成python数据

    # 这是一个json格式的字符串
    json_text = '{"name": "tom", "age": 18, "friends": ["mick", "jerry"], "text": "hello world"}'
    # loads = load from string
    res = json.loads(json_text)
    print(res)
    # 结果:{'name': 'tom', 'age': 18, 'friends': ['mick', 'jerry'], 'text': 'hello world'}
    print(type(res))
    # 结果: <class 'dict'>

二.python类型和json类型互转对照表

  • python数据类型转换成json格式
Python数据类型JSON
dictObject
list, tuplearray
strstring
int, float, int- & float-derived Enumsnumbers
Truetrue
Falsefalse
Nonenull
  • json格式转换成python数据类型
JSONPython数据类型
objectdict
arraylist
stringstr
number(int)int
number(real)float
trueTrue
falseFalse
nullNone

注意:

需要特别注意的是dump在对中文进行保存的时候,中文会被默认转化成unicode编码

    fp = open('./dic.json', 'w', encoding='utf-8')

    # 张三 --- >  "\u5f20\u4e09" 默认中文会被转化成Unicode编码
    dic = {
        'name': '张三',
        'age': 18
    }

    json.dump(dic, fp)

打开文件后,默认中文被转化为Ubicode编码

在这里插入图片描述

解决办法:

添加关键词,ensure_ascii=False ,这样就不会自动转化成Unicode编码了

    fp = open('./dic.json', 'w', encoding='utf-8')

    # 张三 --- >  "\u5f20\u4e09" 默认中文会被转化成Unicode编码
    dic = {
        'name': '张三',
        'age': 18
    }
	# 这里加了 ensure_ascii=False
    json.dump(dic, fp, ensure_ascii=Fals

打开文件后,中文能正常显示:

在这里插入图片描述

三.总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值