怎么新建MySQL数据库

发布时间:2022-05-21 作者:admin
阅读:297
关于“Python处理json文件函数有哪些,怎么读写json文件”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。

python处理json文本文件主要是以下四个函数:

函数 作用
json.dumps 对数据进行编码,将python中的字典 转换为 字符串
json.loads 对数据进行解码,将 字符串 转换为 python中的字典
json.dump 将dict数据写入json文件中
json.load 打开json文件,并把字符串转换为python的dict数据

json.dumps / json.loads

数据转换对照:

json python
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None

代码示例:

import json
tesdic = {
    'name': 'Tom',
    'age': 18,
    'score':
        {
            'math': 98,
            'chinese': 99
        }
}
print(type(tesdic))
json_str = json.dumps(tesdic)
print(json_str)
print(type(json_str))
newdic = json.loads(json_str)
print(newdic)
print(type(newdic))

输出为:

<class 'dict'>
{"name": "Tom", "age": 18, "score": {"math": 98, "chinese": 99}}
<class 'str'>
{'name': 'Tom', 'age': 18, 'score': {'math': 98, 'chinese': 99}}
<class 'dict'>

json.dump / json.load

写入json的内容只能是dict类型,字符串类型的将会导致写入格式问题:

with open("res.json", 'w', encoding='utf-8') as fw:
    json.dump(json_str, fw, indent=4, ensure_ascii=False)

则json文件内容为:

"{\"name\": \"Tom\", \"age\": 18, \"score\": {\"math\": 98, \"chinese\": 99}}"

我们换一种数据类型写入:

with open("res.json", 'w', encoding='utf-8') as fw:
    json.dump(tesdic, fw, indent=4, ensure_ascii=False)

则生成的josn就是正确的格式:

{
    "name": "Tom",
    "age": 18,
    "score": {
        "math": 98,
        "chinese": 99
    }
}

同理,从json中读取到的数据也是dict类型:

with open("res.json", 'r', encoding='utf-8') as fw:
    injson = json.load(fw)
print(injson)
print(type(injson))
{'name': 'Tom', 'age': 18, 'score': {'math': 98, 'chinese': 99}}
<class 'dict'>

到此这篇关于“Python处理json文件函数有哪些,怎么读写json文件”的文章就介绍到这了,更多相关Python处理json文件函数有哪些,怎么读写json文件内容,欢迎关注群英网络技术资讯频道,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

二维码-群英

长按识别二维码并关注微信

更方便到期提醒、手机管理

7*24 全天候服务

售前 400-678-4567

售后 0668-2555666

售后 400 678 4567

信息安全 0668-2555 118

域名空间 3004329145