diff --git a/translated/tech/20190716 Save and load Python data with JSON.md b/translated/tech/20190716 Save and load Python data with JSON.md index f2bf9c0e71..18c00a038a 100644 --- a/translated/tech/20190716 Save and load Python data with JSON.md +++ b/translated/tech/20190716 Save and load Python data with JSON.md @@ -1,28 +1,28 @@ [#]: collector: (lujun9972) [#]: translator: (HankChow) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Save and load Python data with JSON) [#]: via: (https://opensource.com/article/19/7/save-and-load-data-python-json) [#]: author: (Seth Kenlon https://opensource.com/users/seth) - -使用 Python 处理 JSON 格式数据 +使用 Python 处理 JSON 格式的数据 ====== -如果你不希望从头开始创造一种数据格式来存放数据,JSON 是一个很好的选择。如果你对 Python 有所了解,就更加事半功倍了。下面就来介绍一下如何使用 Python 处理 JSON 数据。 + +> 如果你不希望从头开始创造一种数据格式来存放数据,JSON 是一个很好的选择。如果你对 Python 有所了解,就更加事半功倍了。下面就来介绍一下如何使用 Python 处理 JSON 数据。 + ![Cloud and databsae incons][1] -[JSON][2] 的全称是 JavaScript 对象表示法Object Notation。这是一种以键值对的形式存储数据的格式,并且很容易解析,因而成为了一种被广泛使用的数据格式。另外,不要因为 JSON 名称而望文生义,JSON 并不仅仅在 JavaScript 中使用,它也可以在其它语言中使用。下文会介绍它是如何在 Python 中使用的。 +[JSON][2] 的全称是 JavaScript 对象表示法JavaScript Object Notation。这是一种以键值对的形式存储数据的格式,并且很容易解析,因而成为了一种被广泛使用的数据格式。另外,不要因为 JSON 名称而望文生义,JSON 并不仅仅在 JavaScript 中使用,它也可以在其它语言中使用。下文会介绍它是如何在 Python 中使用的。 首先我们给出一个 JSON 示例: - ``` { - "name":"tux", - "health":"23", - "level":"4" + "name":"tux", + "health":"23", + "level":"4" } ``` @@ -30,11 +30,10 @@ ### 使用字典存放数据 -如果你的应用需要存储一些结构复杂的数据,不妨考虑使用 JSON 格式。对比你可能曾经用过的自定义格式的文本配置文件,JSON 提供了更加结构化的可递归的存储格式。同时,Python 自带的 `json` 模块已经提供了可以将 JSON 数据导入/导出应用时所需的所有解析库。因此,你不需要针对 JSON 自行编写代码用于解析,而其他开发人员在与你的应用进行数据交互的时候也不需要去解析新的数据格式。正是这个原因,JSON 在数据交换时被广泛地采用了。 +如果你的应用需要存储一些结构复杂的数据,不妨考虑使用 JSON 格式。对比你可能曾经用过的自定义格式的文本配置文件,JSON 提供了更加结构化的可递归的存储格式。同时,Python 自带的 `json` 模块已经提供了可以将 JSON 数据导入/导出应用时所需的所有解析库。因此,你不需要针对 JSON 自行编写代码进行解析,而其他开发人员在与你的应用进行数据交互的时候也不需要去解析新的数据格式。正是这个原因,JSON 在数据交换时被广泛地采用了。 以下是一段在 Python 中使用嵌套字典的代码: - ``` #!/usr/bin/env python3 @@ -57,8 +56,7 @@ team['konqi'] = {'health': 18, 'level': 7} ### 使用 JSON 格式存储数据 -如果存放在字典中的数据需要被持久性存储,这些数据就需要写到文件当中。这个时候就需要用到 Python 中的 `json` 模块了: - +如果存放在字典中的数据需要持久存储,这些数据就需要写到文件当中。这个时候就需要用到 Python 中的 `json` 模块了: ``` with open('mydata.json', 'w') as f: @@ -69,7 +67,6 @@ with open('mydata.json', 'w') as f: 从应用中导出数据就是这么简单,同时这些导出的数据是结构化的、可理解的。现在可以查看导出的数据: - ``` $ cat mydata.json {"tux": {"health": 23, "level": 4}, "beastie": {"health": 13, "level": 6}, "konqi": {"health": 18, "level": 7}} @@ -79,7 +76,6 @@ $ cat mydata.json 如果已经将数据以 JSON 格式导出到文件中了,也有可能需要将这些数据读回到应用中去。这个时候,可以使用 Python `json` 模块中的 `load()` 方法: - ``` #!/usr/bin/env python3 @@ -102,10 +98,9 @@ f.close() 这个方法实现了和保存文件大致相反的操作。使用一个变量 `f` 来表示打开了的文件,然后使用 `json` 模块中的 `load()` 方法读取文件中的数据并存放到 `team` 变量中。 -其中的 `print()` 展示了如何查看读取到的数据。在过于复杂的字典中迭代调用字典键的时候有可能会稍微转不过弯来,但只要熟悉整个数据的结构,就可以慢慢摸索出其中的逻辑。makes sense. - -当然,这里使用 `print()` 的方式太不灵活了。你可以将其改写成使用 for 循环的形式: +其中的 `print()` 展示了如何查看读取到的数据。在过于复杂的字典中迭代调用字典键的时候有可能会稍微转不过弯来,但只要熟悉整个数据的结构,就可以慢慢摸索出其中的逻辑。 +当然,这里使用 `print()` 的方式太不灵活了。你可以将其改写成使用 `for` 循环的形式: ``` for i in team.values(): @@ -116,7 +111,6 @@ for i in team.values(): 如上所述,在 Python 中可以很轻松地处理 JSON 数据。因此只要你的数据符合 JSON 的模式,就可以选择使用 JSON。JSON 非常灵活易用,下次使用 Python 的时候不妨尝试一下。 - -------------------------------------------------------------------------------- via: https://opensource.com/article/19/7/save-and-load-data-python-json @@ -124,7 +118,7 @@ via: https://opensource.com/article/19/7/save-and-load-data-python-json 作者:[Seth Kenlon][a] 选题:[lujun9972][b] 译者:[HankChow](https://github.com/HankChow) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出