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

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

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

如果你对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中国 荣誉推出

点击“了解更多”可访问文内链接
    推荐阅读
  • 12pro和13pro外观有什么区别 13pro外观和12pro的区别

    演示机型:Iphone12Pro&&Iphone13Pro系统版本:iOS15.21、颜色:Iphone12Pro的颜色有黑色、白色、红色、绿色、蓝色、紫色六款;Iphone13Pro的颜色有石墨色、金色、银色、远峰蓝色四款。

  • 什么集成灶最靠谱(为什么推荐集成灶)

    今天分享3个看似很流行,其实鸡肋的“网红”设计,如果你家正在装修,要根据自己的实际情况来决定,千万别照搬。以目前流行的美大集成灶为例,它改变了传统排烟方式,开创了“下排油烟系统”,从源头解决了厨房油烟污染问题。

  • 内切圆弧连接方法(如何做到既内切又外接)

    如何做到既内切又外接作者|刘洋洲来源|转自知乎专栏《万物皆数也》,“数学英才”获授权转载,在此感谢!问:小圆含在大圆内,是否存在一个三角形,大圆是它的外接圆,小圆是它的内切圆?大圆和小圆需要满足哪些条件,才存在这样的三角。

  • 有一种天气叫回南天(恼人的回南天要呆多少天)

    最近天气实在糟糕,风雨雷电刚刚消停一会,回南天又来了个无缝对接。韶关乳源录得全省最低气温12.7℃。各区最低气温14℃~17℃,最高气温22℃~27℃。3月25日夜间至26日受高空槽、切变线和冷空气共同影响,广州有大雨局部暴雨,部分地区有回南天,雨时伴有7~8级短时大风和雷电。3月26日傍晚起气温下降,过程降温4℃~6℃。3月27日,珠三角中南部、粤东、阳江、茂名、湛江有大雨局部暴雨,其余市县阴天有小到中雨局部大雨。

  • 滨海县千翔山羊养殖场(养殖山羊奔富路)

    农民赶羊赶着羊群去放牧红网花垣县分站11月2日讯11月1日上午,湖南省花垣县龙潭镇李梅村波尔山羊养殖大户吴绍刚正赶着羊群去放牧。吴绍刚家共有5口人,家里无经济来源,生活十分困难。通过帮扶单位花垣县信访局的精准扶贫,并为其家扶助1万元作为养殖启动资金。目前,他家波尔山羊已经发展到了100余只,年底预计出栏山羊近30只,可赚回羊钱3万余元。

  • 斐讯k2p官改固件怎么样(斐讯k2p刷了老毛子跟官改都跑不满网速)

    不得不说官改信号完爆老毛子。相同位置多一格甚至两格信号。我刷的魔改UI版本,黑色皮肤的那个,测试了几天。没有出现断流,我看有网友说,关掉IPV6就好了,你试一试。但是自从刷了华硕就断流,明明满格信号就是加载不出来,后来刷回官改也开始断流了!!!

  • 微信注册小号用不用手机号(可以注册小号了)

    微信注册小号用不用手机号7月5日,据新浪科技报道,微信正在进行小号功能的灰度测试,用户可以通过“切换账号”中的新增账号功能添加微信小号,无需绑定新手机号,包括聊天、朋友圈和钱包功能都能正常使用。目前,这个“小号”功能正在增加参与测试的人数。目前来说,切换账号和微信小号功能基本上可以说是为iOS用户量身定制的。

  • 山河令叶白衣喜欢谁(山河令叶白衣的介绍)

    跟着小编一起来看一看吧!山河令叶白衣喜欢谁《山河令》中叶白衣喜欢的是容长青。叶白衣是长明山剑仙,长生不老,容貌俊秀。叶白衣和容长青是非常好的知己,他们都喜欢研究武学和兵器的制造。他虽然很喜欢容长青,但是他是个男的,一直都没说出口。他也只能看着容长青娶妻生子。

  • 头发变黑的小妙招(头发变黑的小妙招有哪些)

    功效:用牙刷蘸取药糊后刷头发每日2次,可以乌发,适用于各种非遗传原因导致的白发。做法:将首乌、黄精切成博片后浸入白酒中,装瓶密封,15日后滤渣饮用。功效:每日去6克,用白开水送服,每日3次。连续服用,至黑发再生。本方有补肝肾、益阴血的功效,用于治疗肝肾不足,阴血亏损导致头发早白最为适宜。

  • 励志短句星辰大海前程(有关星辰大海的励志短句)

    我们每个人都会经历青春,在青春的国度里,我们是快乐的,因为幼时的梦想此时还在发光,以后的希望此时也正在酝酿。一个有事业追求的人,可以把“梦”做得高些。虽然开始时是梦想,但只要不停地做,不轻易放弃,梦想能成真。我们心中不但要有梦想,还要有让自己实现梦想的阶梯,这样经由靠近梦想,我们的人生会变得富足、自由、幸福。人有了物质才能生存,人有了梦想才谈得上生活。