百摩网
当前位置: 首页 生活百科

python中json格式数据处理(使用Python处理)

时间:2023-06-05 作者: 小编 阅读量: 1 栏目名: 生活百科

如果你对Python有所了解,就更加事半功倍了。这是一种以键值对的形式存储数据的格式,并且很容易解析,因而成为了一种被广泛使用的数据格式。下文会介绍它是如何在Python中使用的。正是这个原因,JSON在数据交换时被广泛地采用了。这个时候,可以使用Pythonjson模块中的load()方法:#!JSON非常灵活易用,下次使用Python的时候不妨尝试一下。

如果你不希望从头开始创造一种数据格式来存放数据,json 是一个很好的选择。如果你对 Python 有所了解,就更加事半功倍了。下面就来介绍一下如何使用 Python 处理 JSON 数据。

-- Seth Kenlon(作者)

JSON 的全称是 JavaScript 对象表示法(JavaScript Object Notation)。这是一种以键值对的形式存储数据的格式,并且很容易解析,因而成为了一种被广泛使用的数据格式。另外,不要因为 JSON 名称而望文生义,JSON 并不仅仅在 JavaScript 中使用,它也可以在其它语言中使用。下文会介绍它是如何在 Python 中使用的。

首先我们给出一个 JSON 示例:

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

上面是一个和编程语言无关的原生 JSON 数据。熟悉 Python 的人会看出来这个 JSON 数据跟 Python 中的 字典(dictionary)长得很像。而这两者之间确实非常相似,如果你对 Python 中的列表和字典数据结构有一定的理解,那么 JSON 理解起来也不难。

使用字典存放数据

如果你的应用需要存储一些结构复杂的数据,不妨考虑使用 JSON 格式。对比你可能曾经用过的自定义格式的文本配置文件,JSON 提供了更加结构化的可递归的存储格式。同时,Python 自带的 json 模块已经提供了可以将 JSON 数据导入/导出应用时所需的所有解析库。因此,你不需要针对 JSON 自行编写代码进行解析,而其他开发人员在与你的应用进行数据交互的时候也不需要去解析新的数据格式。正是这个原因,JSON 在数据交换时被广泛地采用了。

以下是一段在 Python 中使用嵌套字典的代码:

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

这段代码声明了一个名为 team 的字典,并初始化为一个空字典。

如果要给这个字典添加内容,首先需要创建一个键,例如上面示例中的 tux、beastie、konqi,然后为这些键一一提供对应的值。上面示例中的值由一个个包含游戏玩家信息的字典充当。

字典是一种可变的变量。字典中的数据可以随时添加、删除或更新。这样的特性使得字典成为了应用程序存储数据的极好选择。

使用 JSON 格式存储数据

如果存放在字典中的数据需要持久存储,这些数据就需要写到文件当中。这个时候就需要用到 Python 中的 json 模块了:

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

上面的代码首先创建了一个名为 mydata.json 的文件,然后以写模式打开了这个文件,这个被打开的文件以变量 f 表示(当然也可以用任何你喜欢的名称,例如 file、output 等)。而 json 模块中的 dump() 方法则是用于将一个字典输出到一个文件中。

从应用中导出数据就是这么简单,同时这些导出的数据是结构化的、可理解的。现在可以查看导出的数据:

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

从 JSON 文件中读取数据

如果已经将数据以 JSON 格式导出到文件中了,也有可能需要将这些数据读回到应用中去。这个时候,可以使用 Python json 模块中的 load() 方法:

#!/usr/bin/env python3import jsonf = open('mydata.json')team = json.load(f)print(team['tux'])print(team['tux']['health'])print(team['tux']['level'])print(team['beastie'])print(team['beastie']['health'])print(team['beastie']['level'])# when finished, close the filef.close()

这个方法实现了和保存文件大致相反的操作。使用一个变量 f 来表示打开了的文件,然后使用 json 模块中的 load() 方法读取文件中的数据并存放到 team 变量中。

其中的 print() 展示了如何查看读取到的数据。在过于复杂的字典中迭代调用字典键的时候有可能会稍微转不过弯来,但只要熟悉整个数据的结构,就可以慢慢摸索出其中的逻辑。

当然,这里使用 print() 的方式太不灵活了。你可以将其改写成使用 for 循环的形式:

for i in team.values(): print(i)

使用 JSON

如上所述,在 Python 中可以很轻松地处理 JSON 数据。因此只要你的数据符合 JSON 的模式,就可以选择使用 JSON。JSON 非常灵活易用,下次使用 Python 的时候不妨尝试一下。


via: https://opensource.com/article/19/7/save-and-load-data-python-json

作者: Seth Kenlon 选题: lujun9972 译者: HankChow 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接
    推荐阅读
  • 电脑显卡驱动怎么更新(电脑显卡驱动更新步骤)

    以下内容希望对你有帮助!电脑显卡驱动怎么更新以win10系统为例讲解,进入桌面模式,首先桌面右键单击此电脑,选择属性。在设备管理器中选择显示适配器选项。搜索到最新驱动后,系统自动替代安装。对于不善于自己动手处理电脑问题的朋友建议用第三方驱动更新工具更新显卡。

  • 彼知颦美的下一句(彼知颦美的下一句是什么)

    彼知颦美的下一句彼知颦美的下一句其里之丑人见而美之。其里之富人见之,坚闭门而不出;贫人见之,挈妻子而去之走。彼知颦美,而不知颦之所以美。邻里的有钱人看见了,紧闭家门而不出;贫穷的人看见了,带着妻儿子女远远地跑开了。

  • 土豆片怎么炒好吃(这样做好吃)

    下面更多详细答案一起来看看吧!土豆片怎么炒好吃把尖椒洗净去籽,切小片。土豆去皮,洗净切成薄片。待锅烧红后,加入食用油烧热。加入酱油,翻炒一会,加入土豆片,炒拌3分钟。等土豆变色后,加入适量盐调味即可出锅。

  • 养猪产能新周期开启(农业生产周期 养猪)

    重产带动猪价归落方案细化主体责任上述《方案》明确了产销平衡总体请求,提出了分区防控的措施。近期,牧原股份、新希翼等企业相继发布11月份生猪销售简报。温氏股份称,此次收购将尽善企业猪产业的全国布局,助力公司养猪业7000万头的发展目标。12月1日再次发布公告称,拟在河北、山东、湖北、江苏、安徽、河南等6省设立14家子公司,总投资金额共达1.4亿元。

  • 好听的梦幻西游家族名字(梦幻西游手游好听的家族名字)

    1、独角戏2、酒场新人3、失色你笑颜4、愿岁月可回头5、青空如璃6、作茧自缚7、故事成空白8、黎明有星辰9、孤心10、形同陌路11、不如戏子12、故人相离13、少年已不年少14、当初的我们

  • 笔试结束前多长时间提醒考生(这项考试面试时间确定)

    9月15日,记者从兰州市事业单位公开招聘人员工作领导小组办公室获悉,2022年兰州市事业单位公开招聘人员面试时间为9月24日至26日。综合成绩排名及入围体检人员名单于面试全部结束后实时在兰州市人力资源和社会保障局网站公布。据悉,原定于9月17日举行的甘肃省2022年事业单位公开招聘分类考试将延期举行。

  • 减肥远离4类发胖食物(健康减肥离不开死都吃不胖的食物)

    几乎零卡路里,并且不含脂肪,却含有丰富纤维,可在肠胃内吸收水份,食用后易有饱足感,多吃也不怕。不过为免吸收过多胆固醇,建议多吃蛋白、少吃蛋黄。西红柿含有丰富的维他命b群,能促进脂肪的代谢。在饭前吃西红柿,有助脂肪燃烧。不过不建议长期代替正餐,因麦皮并不能为身体提供蛋白质,长期缺乏蛋白质会令人易感疲倦、及引致脱发等问题。其食用纤维也能保持血管及心脏健康。

  • 生命太脆弱的文案(生命不能承受之轻)

    跟着小编一起来看一看吧!生命太脆弱的文案来自《生命不能承受之轻》:从今往后,我开始谨慎地选择人生,不再轻易让自己迷失在种种诱惑之中,心里已听见从远处传来的呼唤,再也不用回头去管身后种种是非和议论,过去的事我已无暇顾及,我要继续前进。

  • 英文名有寓意很简短(年度最热门英文名)

    年度最热门英文名对比源远流长,博大精深的中文来说,英文名就比较难起很多,而且可供的名字也会少很多,再加上对国外文化、历史的不了解,稍有不慎就会掉入起名路上深坑为了避免此类事情的发生,大家可以从年度最热门英文名来找寻好。

  • 11月30日郴州四价HPV疫苗到苗最新消息(郴州市hpv九价疫苗)

    疫苗价格:827.5/支,三针全程接种价格在2482.5元左右。推荐0、2和6月分别接种1剂次,共计3剂。首剂与第2剂接种间隔至少1个月,第2剂与第3剂接种间隔至少3个月,3剂应在1年内完成。接种禁忌症1.对酿酒酵母和疫苗成分过敏者不能接种;2.发热、严重器质性疾病、严重过敏体质和三个月内使用免疫球蛋白或血液制品者不宜接种;3.妊娠期、哺乳期妇女不宜接种本疫苗;4.备孕期妇女不建议接种。