相关文章推荐
有胆有识的槟榔  ·  为什么我的Jupyter总是崩溃?·  3 天前    · 
有胆有识的自行车  ·  3. 定义扩展类型:已分类主题 — ...·  3 天前    · 
绅士的大象  ·  [Python]内存管理 | 听见下雨的声音·  3 天前    · 
聪明的橙子  ·  python内存机制与垃圾回收、调优手段 ...·  3 天前    · 
谦和的冰棍  ·  如何释放Python占用的内存 – ...·  3 天前    · 
耍酷的移动电源  ·  isNaN() - JavaScript ...·  3 月前    · 
谦和的帽子  ·  GridView控件的学习和使用 - ...·  1 年前    · 
有腹肌的大白菜  ·  使用curl / ...·  2 年前    · 
英俊的槟榔  ·  java - Create EC ...·  2 年前    · 
任性的海龟  ·  Flutter 中转换 json ...·  2 年前    · 
Code  ›  使用JSON保存和加载Python数据【Programming(Python)】开发者社区
编程语言 python函数 python
https://cloud.tencent.com/developer/article/1546449
讲道义的凉面
2 年前
作者头像
Potato
0 篇文章

使用JSON保存和加载Python数据【Programming(Python)】

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > Opensource翻译专栏 > 使用JSON保存和加载Python数据【Programming(Python)】

使用JSON保存和加载Python数据【Programming(Python)】

作者头像
Potato
修改 于 2019-12-02 11:22:11
4.1K 0
修改 于 2019-12-02 11:22:11
举报

JSON 格式使您不必创建自己的数据格式,如果您已经了解Python,它就特别容易学习。这是在Python中使用它的方法。

JSON代表JavaScript对象符号。 这种格式是一种以键-值排列方式存储数据的流行方法,因此以后可以轻松对其进行解析。 但是,不要让这个名称愚弄您:您可以在Python中使用JSON(而不仅仅是JavaScript)作为存储数据的简便方法,本文将演示如何入门。

首先,看一下这个简单的JSON代码片段:

 {
         "name":"tux",
         "health":"23",
         "level":"4"
 }

这是纯JSON,并且未针对Python或任何其他语言进行更改。 但是,如果您熟悉Python,您可能会注意到,这个示例JSON代码看起来非常像Python字典。 实际上,两者非常相似:如果您熟悉Python列表和字典,那么JSON很适合您。

以JSON格式存储数据

如果您的应用程序需要存储一些复杂的数据,则可以考虑使用JSON。 虽然您以前可能曾使用自定义文本配置文件或数据格式,但JSON为您提供了结构化的递归存储,而Python的JSON模块提供了将这些数据传入和传出应用程序所需的所有解析库。 因此,您不必自己编写解析代码,其他程序员在与应用程序进行交互时也不必解码新的数据格式。 因此,JSON易于使用且无处不在。

以下是在字典中使用字典的一些示例Python代码:

 #!/usr/bin/env python3
 import json
 # instantiate an empty dict
 team = {}
 # add a team member
 team['tux'] = {'health': 23, 'level': 4}
 team['beastie'] = {'health': 13, 'level': 6}
 team['konqi'] = {'health': 18, 'level': 7}

这段代码创建了一个名为team的Python字典。 最初是空的(您可以创建一个已经填充的数据,但是如果您还没有将数据放入字典的话,那是不可能的)。

要添加到dict对象,您可以在示例代码中创建一个键(例如tux , beastie或konqi) ,然后提供一个值。 在这种情况下,该值为另一个充满玩家统计信息的词典。

字典是可变的。 您可以随意添加,删除和更新它们包含的数据。 此格式是应用程序经常使用的数据的理想存储。

以JSON格式保存数据

如果要存储在词典中的数据是需要在应用程序退出后保留的用户数据,则必须将数据写入磁盘上的文件中。 这是JSON Python模块进来的地方:

 with open('mydata.json', 'w') as f:
     json.dump(team, f)

代码块创建一个名为mydata.json的文件,并在写入模式下将其打开。 该文件用变量f表示(一个完全任意的名称;您可以使用任何喜欢的变量名,例如file , FILE , output或几乎任何名称)。 同时,JSON模块的转储功能用于将数据从dict转储到数据文件中。

从您的应用程序中保存数据就是这么简单,而最好的部分是数据是结构化的和可预测的。 要查看,请查看生成的文件:

 $ cat mydata.json
 {"tux": {"health": 23, "level": 4}, "beastie": {"health": 13, "level": 6}, "konqi": {"health": 18, "level": 7}}

从JSON文件读取数据

如果要将数据保存为JSON格式,则可能最终希望将数据读回到Python中。 为此,请使用Python JSON模块的json.load函数:

 #!/usr/bin/env python3
 import json
 f = open('mydata.json')
 team = json.load(f)
 print(team['tux'])
 print(team['tux']['health'])
 print(team['tux']['level'])
 print(team['beastie'])
 
推荐文章
有胆有识的槟榔  ·  为什么我的Jupyter总是崩溃?
3 天前
有胆有识的自行车  ·  3. 定义扩展类型:已分类主题 — Python 3.14.2 文档
3 天前
绅士的大象  ·  [Python]内存管理 | 听见下雨的声音
3 天前
聪明的橙子  ·  python内存机制与垃圾回收、调优手段 - 长安223
3 天前
谦和的冰棍  ·  如何释放Python占用的内存 – PingCode
3 天前
耍酷的移动电源  ·  isNaN() - JavaScript | MDN
3 月前
谦和的帽子  ·  GridView控件的学习和使用 - 天南星客 - 博客园
1 年前
有腹肌的大白菜  ·  使用curl / wget命令上传下载FTP-阿里云开发者社区
2 年前
英俊的槟榔  ·  java - Create EC private key from hex string - Stack Overflow
2 年前
任性的海龟  ·  Flutter 中转换 json 的最佳和最方便的方法-阿里云开发者社区
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号