python | 将字典类型数据保存成 json 文件及读取 json 文件方法

前言

python 的 json 序列化模块,提供了读写 json 文件的方法:load() 和dump() 。

json.dump():将数据以 json 的数据类型写入文件中。

json.load():从 json 文件中读取数据,返回字典格式数据。

注:dumps()、loads() 方法,可以实现字典(dict)与 json 字符串的转换。详细用法可参考往期文章:python------json、字典的区别及相互转换方法

python 中 json 文件读写方法如下。

一、将字典格式数据写入 json 文件

如下例:通过 dump() 方法将 a_dict 字典类型数据写入 json 文件

复制代码
# 将字典格式数据写入json文件
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
with open('test.json', 'w', encoding='utf-8') as f:
    json.dump(a_dict, f)

运行后如下图:

以上是最基础的写入方法,有以下三点需要注意:

一是:原字典数据中的单、双、三引号,都变成双引号(这是 json 的标准格式)。

二是:写入 json 文件后,原字典的中文汉字没有正常显示,而是以编码的形式保存。

想要直接显示为中文,解决办法就是加入参数:ensure_ascii=False。如下例:

复制代码
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
with open('test1.json', 'w', encoding='utf-8') as f:
    json.dump(a_dict, f, ensure_ascii=False)

三是:写入 json 文件的数据呈现一排展示,结构不清晰。

解决办法就是加入参数:indent='空格数'

复制代码
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
with open('test2.json', 'w', encoding='utf-8') as f:
    json.dump(a_dict, f, ensure_ascii=False, indent=2)

二、json 文件读取

json.load():用来读取标准数据格式的 json 文件,返回字典(dict)类型数据。

复制代码
# 读取json文件
with open('test.json', 'r', encoding='utf-8') as f:
    data = json.load(f)
    print(data)
    print('返回数据类型:', type(data))

重点需要注意的是:

不是所有以【.json】结尾的文件,里面的数据都是标准的 json 格式。

如以下 json 文件中的数据格式,就是非标准化的json格式。

json 标准格式中,字符串必须用双引号,以上 json 数据中的字符串均使用的是单引号。

json 与字典格式数据区别,可参考往期文章:python------json、字典的区别及相互转换方法

-end-

相关推荐
Java成神之路-2 天前
SpringMVC 响应实战指南:页面、文本、JSON 返回全流程(Spring系列13)
java·spring·json
我命由我123452 天前
在 React 项目中,可以执行 npm start 命令,但是,无法执行 npm build 命令
前端·javascript·vue.js·react.js·前端框架·json·ecmascript
带刺的坐椅2 天前
RFC 9535:JSONPath 的标准化之路
java·json·jsonpath·snack4·rfc9535
孙同学20202 天前
如何将 JSON 数据转换为 Excel 工作表
python·json·excel
ID_180079054732 天前
除了 Python,还有哪些语言可以解析 JSON 数据?
开发语言·python·json
电商API&Tina3 天前
跨境电商如何接入1688官方寻源通接口?附接入流程
java·数据库·python·sql·oracle·json·php
神の愛4 天前
利用json-to-ts工具进行转换,放置在typeScript.ts文件中
javascript·typescript·json
BUG_MeDe4 天前
从Json对象中提取某个对象的一点注意--libjson-c
linux·json
HelloTonyGo4 天前
个人游戏笔记本免费“养龙虾”(七)OpenClaw的openclaw.json文件的基本配置
ubuntu·json·配置·读写权限·openclaw
数据知道5 天前
claw-code 源码详细分析:`reference_data` JSON 快照——大型移植里「对照底稿」该怎么治理与演进?
linux·python·ubuntu·json·claude code