最新要闻
- 环球视讯!宣恩高罗:美都西瓜清甜上市
- 小米24.5寸165hz超频
- 今日热文:定档7月5日国内首发骁龙6Gen1,荣耀50官宣号称“十年登峰之作”
- 新资讯:1.06亿人次,超2019年同期!端午出游很“热”
- 文字,最美的遇见
- 全球新动态:鞋类设计超级秀惊艳上演,首届“红靴奖”颁奖典礼在温州举行
- 代号鸢三千宇宙噩梦游侠怎么打 当前播报
- 美国一火车在桥梁坍塌后落入河中 载有硫磺等危险化学品|全球球精选
- 陕西:绝不允许出现“要项目、占资源、不建设”情况,已废止1.3GW风、光项目 头条
- 丁家营镇:开展“扫黄打非”专项行动 今日热议
- 每日聚焦:河南高招分数段统计表公布!
- 15个小时,卖楼超百亿元!深圳千万豪宅购买信心回来了?
- 青岛历史性大项目投入运营!
- 扣扣炫舞印象大全_qq炫舞留印象8个字
- 端午假期北京全市公园纳客326万人次 同比增61% 焦点消息
- 出行、旅游、消费里看活力 端午假期各项数据亮眼_世界新视野
手机
江苏外贸提质升级呈现新变化 “新三样”乘风破浪领跑出口
库迪咖啡在哈尔滨成立新公司 含自动售货机销售业务_资讯
- 江苏外贸提质升级呈现新变化 “新三样”乘风破浪领跑出口
- 库迪咖啡在哈尔滨成立新公司 含自动售货机销售业务_资讯
- 天天时讯:丰城:重点项目“金邑·启元大厦”奠基开工
- 天天新资讯:信用卡逾期几次就黑名单了?信用卡逾期多少钱会影响征信?-今日快讯
- 【世界聚看点】慈利县零阳街道:推进移风易俗 让文明乡风在七枞村“落地生根”
- 河南加速领跑超硬材料赛道 当前速讯
家电
Python 中的 JSON 操作:简单、高效的数据交换格式|焦点速递
在现代的数据交换和存储中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,备受青睐。它不仅易于阅读和理解,还可以灵活地表达和存储高维数据。本文将介绍如何在 Python 中操作 JSON 文件,实现数据的序列化和反序列化。
1. JSON 数据格式
JSON 格式采用键值对的方式表达信息。它的值可以是对象、数组、字符串、整数、浮点数、布尔型或空值。下面是一个 JSON 数据的例子:
(资料图)
{ "name": "kira", "age": 18, "hobby": ["唱歌", "吹牛"], "friends": [ {"name": "刘德华"}, {"name": "梁朝伟"} ]}
在实际工作中,我们可以根据需要扩展和定制这种数据格式,以适应不同的场景和业务需求。
2. Python 操作 JSON 文件
Python 提供了内置的 json
模块,用于解析和操作 JSON 数据。
2.1 JSON 反序列化为 Python 对象
将 JSON 数据反序列化为 Python 对象是常见的操作,可以利用 json.loads()
方法实现。
import jsonjson_str = "{"name":"kira","age":18}"print(json_str, type(json_str))load_data = json.loads(json_str)print(load_data, type(load_data))
运行结果:
{"name":"kira","age":18} {"name": "kira", "age": 18}
此外,如果需要从 JSON 文件中加载数据,可以使用 json.load()
方法。
import jsonwith open("kira.json", "r", encoding="utf-8") as f: load_data = json.load(f) print(load_data, type(load_data))
运行结果:
{"name": "kira", "age": 18, "hobby": ["唱歌", "吹牛"], "friends": [{"name": "刘德华"}, {"name": "梁朝伟"}]}
2.2 Python 序列化为 JSON
与反序列化相对应,Python 可以将对象序列化为 JSON 数据。json.dumps()
方法可以实现这一功能。
import jsondata = { "name": "kira", "age": 18, "hobby": ["唱歌", "吹牛"], "friends": [ {"name": "刘德华"}, {"name": "梁朝伟"} ]}json_str = json.dumps(data)print(json_str)print(json.dumps(data, ensure_ascii=False))print(json.dumps(data, ensure_ascii=False, indent=4))print(json.dumps(data, ensure_ascii=False, indent=4, sort_keys=True))
运行结果:
{"name": "kira", "age": 18, "hobby": ["\u5531\u6b4c", "\u5439\u725b"], "friends": [{"name": "\u5218\u5fb7\u534e"}, {"name": "\u6881\u671d\u4f1f"}]}{"name": "kira", "age": 18, "hobby": ["唱歌", "吹牛"], "friends": [{"name": "刘德华"}, {"name": "梁朝伟"}]}{ "name": "kira", "age": 18, "hobby": [ "唱歌", "吹牛" ], "friends": [ { "name": "刘德华" }, { "name": "梁朝伟" } ]}{ "age": 18, "friends": [ { "name": "刘德华" }, { "name": "梁朝伟" } ], "hobby": [ "唱歌", "吹牛" ], "name": "kira"}
如果需要将 Python 对象序列化后写入 JSON 文件,可以使用 json.dump()
方法。
import jsondata = { "name": "kira", "age": 18, "hobby": ["唱歌", "吹牛"], "friends": [ {"name": "刘德华"}, {"name": "梁朝伟"} ]}with open("first.json", "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=4)
通过上述方法,我们可以轻松地在 Python 中进行 JSON 数据的序列化和反序列化操作。无论是数据交换还是数据存储,JSON 都是一种简单而高效的选择。在实际工作中,我们可以根据具体需求灵活运用 JSON 的优势,提高工作效率。
3 工作中的常见场景
3.1 网络请求和响应
在web开发中,客户端和服务器之间得数据传输通常使用JSON格式。客户端可以将数据封装成 JSON 字符串,通过网络请求发送给服务器。服务器接收到 JSON 数据后,可以使用 Python 中的 JSON 模块将其反序列化为 Python 对象进行处理。处理完成后,服务器可以将结果序列化为 JSON 数据,发送给客户端作为响应。例如:
服务器端(Python):
from flask import Flask, jsonify, requestapp = Flask(__name__)@app.route("/api/data", methods=["POST"])def receive_data(): data = request.get_json() # 对接收到的数据进行处理 processed_data = process_data(data) # 将处理后的数据作为 JSON 响应返回给客户端 return jsonify(processed_data)def process_data(data): # 在这里进行数据处理的逻辑 # ... return processed_dataif __name__ == "__main__": app.run()
客户端(JavaScript):
const data = { name: "测试玩家勇哥", age: 18, hobby: ["唱歌", "吹牛"],};fetch("/api/data", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(data),}) .then(response => response.json()) .then(responseData => { // 处理从服务器返回的响应数据 console.log(responseData); });
上述就是客户端语服务器端之间使用JSON数据传输交互的常见场景。
3.2 配置文件管理
JSON 格式数据非常适合用于存储和管理配置文件,当然数据文件的使用之前勇哥有一篇文章详细介绍过,忘记了的小伙伴可以去复习一下,传送门:,下面举个荔枝:
读取配置文件:
import jsondef read_config_file(file_path): with open(file_path, "r") as f: config_data = json.load(f) return config_data# 读取配置文件config = read_config_file("config.json")# 获取配置项的值db_host = config["database"]["host"]db_port = config["database"]["port"]
修改配置文件:
import jsondef update_config_file(file_path, new_config): with open(file_path, "w") as f: json.dump(new_config, f, indent=4)# 读取配置文件config = read_config_file("config.json")# 修改配置项的值config["database"]["port"] = 5432# 更新配置文件update_config_file("config.json", config)
数据持久化存储也是可以写道JSON文件中的,本文就不做过多的描写了。
总结
以上就是勇哥今天为各位小伙伴准备的内容,如果你想了解更多关于Python自动化测试的知识和技巧,欢迎关注:
我的公众号:测试玩家勇哥
博客(奈非天的主页 - 博客园 (cnblogs.com))
我会不定期地分享更多的精彩内容。感谢你的阅读和支持!
本文来自博客园,作者:奈非天,转载请注明原文链接:https://www.cnblogs.com/Nephalem-262667641/p/17460169.html
关键词:
Python 中的 JSON 操作:简单、高效的数据交换格式|焦点速递
【见·闻】巴西制药、化妆品专业展会凸显中国市场重要性|世界播报
大中矿业: 第五届董事会第三十四次会议决议公告|每日聚焦
农业农村部部署夏季水产养殖生产_环球观点
江苏外贸提质升级呈现新变化 “新三样”乘风破浪领跑出口
微资讯!《地平线:西之绝境》更新 加入兰斯·莱迪克纪念碑
馒头怎么切的那么整齐?
【独家】恒大香港总部大楼拆牌更名,新挂牌方为马云旗下万通保险中心
全球要闻:这些高考信息别在朋友圈乱晒 基本情况讲解
全球热文:高考志愿怎么填?A股董事长学历大数据来了!
世界报道:张艺谋周冬雨开处_欧洲幼儿开处
盛会现场,探营来了!|当前关注
围棋一共多少个棋子_围棋有多少颗棋子
全球视讯!安康节!持艾簪蒲佩香囊 端午沐兰祈安康
库迪咖啡在哈尔滨成立新公司 含自动售货机销售业务_资讯
文明实践传新风 院落讲堂述思想
巨贵吃猪肉么?
环球视讯!宣恩高罗:美都西瓜清甜上市
天天百事通!全新多人联机生存建造游戏《Wildmender》免费游玩别错过了!
拒绝吃灰盖泡面,重塑平板体验,小米平板6 Pro这次很能打! 新消息
天天时讯:丰城:重点项目“金邑·启元大厦”奠基开工
天天新资讯:信用卡逾期几次就黑名单了?信用卡逾期多少钱会影响征信?-今日快讯
每日快报!世界微资讯!银行不同意停息挂账怎么办?停息挂账的后果比逾期还严重吗?
原来卧室飘窗石这样铺才好看,怪不得我们家装出来会那么丑!
当前关注:市区首个城市服务驿站正式启用 为市民提供更多便民服务
你关心的都在这!2023年高考志愿填报十问十答来了
【世界聚看点】慈利县零阳街道:推进移风易俗 让文明乡风在七枞村“落地生根”
中信证券:三重预期均处谷底 三大博弈日趋激烈 当前快报
鬼灭之刃:第四季制作计划公布,这将是九柱战死前最后的温馨
筑牢禁毒“防火墙”,坪山法院开展禁毒宣传活动 世界即时看
流金六月,我们激情开走! 全球微速讯
【世界报资讯】2023浙江高考艺术类分数线公布 最低分数线是多少
小米24.5寸165hz超频
焦点观察:西安古城热线首页_古城热线首页
2023广东省成绩证书下载打印具体操作方式
2023东莞求职创业补贴多少钱?
家常黄鳝的做法大全 ,值得推荐
如何定义和计算“最小称量值”? 每日播报
2023重庆中考成绩出来了吗? 天天看点
南昌象湖滨江6.97亿再挂牌2宗商住地 曾于此前突然终止交易-每日速读
焦点简讯:金地智慧服务上海大区:品竹作画赏金月,最有仪式感的中秋就在这
台州中考录取结果查询方式 全球观速讯
天天报道:他们端午节用汗水浇灌绿荫 营造烟台优美环境
2023河南高考成绩查询入口/附查询方式汇总
科创走廊商务空间 现代化灵感办公|焦点热讯
世界热讯:2023河南省对口招生分数段统计表
今日热文:定档7月5日国内首发骁龙6Gen1,荣耀50官宣号称“十年登峰之作”
新资讯:1.06亿人次,超2019年同期!端午出游很“热”
急求 浙江台州到河南漯河的最佳路线
天天热文:开斋祝福语(开斋祝福语大全)
河南加速领跑超硬材料赛道 当前速讯
全新Magic OS 7.0系统 荣耀80 1.6亿像素手机2099元 环球热资讯
属羊女什么时候生儿子,属羊女79年想生男孩
热文:宁夏银川烧烤店燃气爆炸事故4名犯罪嫌疑人被刑拘
嘉友国际:董监高拟合计减持公司不超4.44%股份-世界时快讯
玛钢厂是做什么的_玛钢 快消息
【世界速看料】李泽楷疑似现身梁洛施豪宅,共同庆祝35岁生日,蛋糕人物成为亮点
上海一小区又现这事儿!十多年来反复投诉却始终无法解决?
惠州红花湖水上乐园图片_惠州红花湖水上乐园
泰和科技:枣庄和生拟减持公司不超1.06%股份
同程旅行:今年端午福州旅游整体人次同比增长125% 报道
当前播报:工人君@权益|说好的“上五休二”,怎么成了每月只休三天?教师脱产进修期间是否计入工龄?
文字,最美的遇见
天天新资讯:盖士人读书第一要有志第二要有识第三要有赏析_盖士人读书第一要有志第二要有识
穆弘怎么读_穆弘
天天要闻:一个人得到富贵之后,尽早离开这几个地方
当前速读:《伊苏10北境历险》公布新预告:男女搭配 战力翻倍
全球新动态:鞋类设计超级秀惊艳上演,首届“红靴奖”颁奖典礼在温州举行
听说了么?罗斯可能要来中国打球!
天天短讯!明明总兵力上百万人,俄政府却遭区区雇佣兵威胁,究竟哪出了问题
世界信息:6月25日海右石化石油焦价格下调
《原神》优昙花在哪里采摘 优昙花采摘位置介绍
6月25日菏泽江源硫酸价格暂稳 开工正常 当前最新
全球速看:郭强vs穆斯里穆_穆斯里穆
2023-06-26 03:38湖南高速公路最新路况实时播报 焦点热讯
代号鸢三千宇宙噩梦游侠怎么打 当前播报
美国一火车在桥梁坍塌后落入河中 载有硫磺等危险化学品|全球球精选
世界快报:湖北考生,6月26日带着成绩来极目新闻高校招生咨询会
缘起凤凰四桥——追记亲历的黄永玉与湘西十桥那些事
01月25日濮阳前往潜江出行防疫政策查询-从濮阳出发到潜江的防疫政策
南方16条河流发生超警洪水 今日播报
全球速递!网游“过脸”当生意,触犯刑律担责
渤海大学举办校园开放日暨本科招生咨询会|全球球精选
天天快报!指纹套教程_如何制作指纹套
频繁推新车,二线豪华品牌要突围?
每日观察!浙江将嘉兴水文站洪水预警调整为黄色预警
观天下!普里戈任接受白俄缓和局势建议,其刑事立案将获撤销
你关心的都在这!多地公布2023高考分数线 高考志愿填报十问十答来了-天天微头条
【透视】印度媒体批评美国过度依赖警察暴力执法,维持公共秩序_当前要闻
环球视点!盛视科技:特定股东、部分董事、高管拟减持股份
甜炸!关晓彤现身鹿晗演唱会,被撞见后慌张拉口罩,真人好漂亮_全球要闻
怎么折钱包 多层_怎么折钱包 每日简讯
环球微资讯!群山之巅 精装版_关于群山之巅 精装版介绍
每日报道:贵州茅台:每股派25.911元 6月30日共计派发现金红利325.49亿元
知乎周源回应黄渊普实名举报:将调整匿名功能,社区不欢迎人身攻击
玉脸是什么意思网络用语_报资讯
福伊特集团CEO托福·贺格博士参加第十一届中德经济技术合作论坛
多地持续高温 专家提示科学预防重点人群中暑
被吹上天的几种“保健食品”,实则坑钱又伤身,劝告父母谨慎购买
陕西:绝不允许出现“要项目、占资源、不建设”情况,已废止1.3GW风、光项目 头条