最新要闻
- 环球看点!全国首个“风火储”打捆外送的沙戈荒新能源大基地项目预计今年6月底并网发电
- 粤港澳大湾区车展新能源车盘点,腾势N7、小鹏G6等-世界滚动
- 2023年女足世界杯开幕倒计时25天庆祝活动在悉尼举行|环球即时
- 天天微速讯:职工转岗就业打造森林旅游经济产业链 绿色转型见成效
- 三五互联再上演资本“戏码”:疑点频出引监管关注,多次不良记录浮出水面!_微速讯
- ldquo rdquo转义_ldquo 扎赉诺 rdquo 这几个字的读音是什么 焦点速读
- 广东海事局发布航行警告:部分海域军事训练
- 我国快递业发展彰显强大韧性 今年提前34天达到600亿件_观点
- 每日热闻!央行本周净投放5120亿!机构:资金面预计稳中偏宽
- 全球快报:陈礼腾:药师帮公开招股结束,业务监管面临不确定性
- 观焦点:新任“央视一姐”接班人?力压董卿和李红,美得像“天仙”一样 每日消息
- 模拟山羊3背景检查器获取流程视频攻略-快资讯
- 世界最资讯丨2023西宁河湟文化旅游艺术节今日开幕
- 高活跃股全名单,最火筹码换超6遍!成交额连续提升股稀缺,3股市盈率不到30倍
- 数字人民币缴纳行邮税在东莞口岸落地 环球要闻
- 环球新资讯:纪念北京2008年奥运会成功举办15周年系列宣传推广活动启动
手机
苹果头显发布,MR头显能否开启苹果公司新的“iphone时刻”?|钛度热评 天天消息
焦点精选!默沙东治疗胃癌III期研究未达到主要终点
- 苹果头显发布,MR头显能否开启苹果公司新的“iphone时刻”?|钛度热评 天天消息
- 焦点精选!默沙东治疗胃癌III期研究未达到主要终点
- 河南省独一无二的“紫金太岁”,就在济源王屋山,却严禁游客拍照
- 80多部影片陆续定档 暑期档推动电影市场回暖-每日热文
- 预算2063.0万元 山东第一医科大学采购生物型原子力显微镜等设备
- 天天通讯!图像拼接算法的基本原理_图像拼接算法
家电
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 操作:简单、高效的数据交换格式_每日看点
Java 反序列化之 XStream 反序列化 世界新视野
记录--强制缓存这么暴力,为什么不使用协商缓存_世界速递
警犬飓风累计缴毒近百公斤_热讯
今日热议:巴基斯坦信德省发生交通事故 造成至少6人死亡
热点在线丨个性化定制、主题研学,暑期游玩法“上新”持续升温
拍摄精美!华为nova11活动价3199元|天天快看
热点在线丨视频丨你好邵阳,早安——邵水桥
奥飞数据(300738.SZ):两大核心算力节点廊坊固安数据中心和广州南沙数据中心项目在今年已实现首期交付
天天快讯:推进算力互联互通战略落地 闻库提出三点建议
暴雨黄色预警!广西海南等地部分地区有大到暴雨_当前讯息
百元保费保障百万 惠民保高增长下存隐忧
红杉中国苏凯:不会过度焦虑,要更主动出击|当前播报
我国靶材市场将达到431亿元,ITO是HJT光伏电池生产主流靶材-焦点信息
互动|芭田股份:与中科院钠离子电池材料合作处于实验室阶段-天天聚看点
苹果头显发布,MR头显能否开启苹果公司新的“iphone时刻”?|钛度热评 天天消息
国网自贡供电公司:文化下基层 浸润“匠人”心 即时看
河南加速领跑超硬材料赛道 环球简讯
环球看点!全国首个“风火储”打捆外送的沙戈荒新能源大基地项目预计今年6月底并网发电
粤港澳大湾区车展新能源车盘点,腾势N7、小鹏G6等-世界滚动
债基“回血”,限购令频出,基民体验冰火两重天 每日观察
焦点精选!默沙东治疗胃癌III期研究未达到主要终点
当前聚焦:国抽!修正药业、葵花集团子公司出现药品不合格!
国产CPU正式出口 大批量产供货|环球今日报
河南省独一无二的“紫金太岁”,就在济源王屋山,却严禁游客拍照
2023年女足世界杯开幕倒计时25天庆祝活动在悉尼举行|环球即时
中老两国禁毒部门密切合作成功侦破“12.04”中国移民警察蔡晓东被杀害案-全球焦点
环球热议:兰州一化工企业酸性水罐闪爆,官方:事故发生在检修期间,未造成污染和伤亡
80多部影片陆续定档 暑期档推动电影市场回暖-每日热文
衡东县警方为营商环境保驾护航
上银基金一周早知道| 多举措提振消费,哪些赛道值得关注?
端午档票房强劲复苏!这部影片吸金超5亿元|速讯
中经评论:人工智能如何应对气候变化 天天快报
当前热门:晒后,最应该做的事其实是......
当前速读:高考查分的心情你还记得吗?一起沉浸式体验
预算2063.0万元 山东第一医科大学采购生物型原子力显微镜等设备
先导智能(300450.SZ):未来海外订单量将保持上升趋势_环球资讯
观车 · 论势 || 特斯拉技术开源背后的“小九九”-天天速递
不回勇士?追梦格林下家3选1,湖人搅局,黑马或大合同逆袭抢人
瓦格纳人员撤离俄南部军区总部所在区域
天天微速讯:职工转岗就业打造森林旅游经济产业链 绿色转型见成效
焦点热议:宁波鄞州农商银行合计被罚120万:因贷款“三查”不尽职等
全国土地日丨节约集约促发展 守好“大国粮仓”_全球聚焦
焦点信息:新技术“引流”,这个“6·18”有点不一样
空客、波音等国际航空巨头:对中国航空市场充满信心,将携带最新机型参加第十五届中国航展_今日热搜
美军里根号航母访问越南 全球短讯
天承科技(688603.SH):网上路演6月27日9:00-12:00|今日关注
三五互联再上演资本“戏码”:疑点频出引监管关注,多次不良记录浮出水面!_微速讯
职工转岗就业打造森林旅游经济产业链 绿色转型见成效
天天时讯:美国一列货运火车压垮桥梁坠入河中:车厢内危险品泄漏
6月23日MTBE外盘市场收盘价下调-焦点热文
金观平:毫不动摇严守耕地红线
《文字玩出花》血压飙升七攻略
天天通讯!图像拼接算法的基本原理_图像拼接算法
“果园帮帮团”解决果农急难愁盼问题(图片)
618厨卫刚需品类市场总结报告:似大浪淘沙,长久见真金
环球短讯!中望cad2018激活码谁有_中望cad2018激活码
每日动态!《明暗面-独行长路》4-7章存档/预览
世界聚焦:电影《孙子从美国来》_电影 孙子从美国来 免费版
警方打击黑帮暴力罪案拘65人,破武器库检电枪长剑开山刀_快资讯
世界最新:银行卡密码忘记了怎么办 银行卡密码忘记了怎么办才能解开
夏天用这些东西,小心“引火上身”!
ldquo rdquo转义_ldquo 扎赉诺 rdquo 这几个字的读音是什么 焦点速读
全球观速讯丨鼓励“衣食住行”转向低碳消费
黄花菜红烧肉的做法?
最新消息:男子每天1斤杨梅狂吃20天要做血透
世界微速讯:宏编程鼠标怎么设置巅峰战舰_宏编程鼠标怎么设置
无锡国联3亿元超短债将于7月7日兑付 利率2.43% 天天快资讯
琼海启动本年度适龄女性HPV疫苗接种
郭珍霓:眼角眉梢皆风情,媚骨天成“剧抛脸”,为何不火|世界热闻
缺氧乔木星体是什么
csgo饰品秒提入库的开箱网站盘点 2023csgo开箱秒提货网站分享
《最终幻想16》MTC遭恶意刷差评 大量0分或1分
汶川地震“敬礼娃娃”郎铮基本确定选择北大|今日观点
微动态丨幼小衔接待花开 双向奔赴筑未来--安阳市文峰区幼小衔接第四组双向交流教研活动
2023年10月浙江省自学考试报名公告
通川区全力保障节日期间市场安全 全球今日报
全球简讯:百奥赛图IPO:实控人夫妇控制27.57%表决权,均拥有美国永久居留权
2023上海高考综评志愿填报时间及入口_世界视讯
煤市由盛转衰 煤价即将回落 全球消息
焦点速读:星辰新能获近亿元Pre-A轮投资
焦点播报:CDK踢欧青赛都吐饼,米兰重点打造的新星仍欠火候
今日热讯:我国南方16条河流发生超警洪水
青豆是豌豆吗(青豆和豌豆的区别)
热点聚焦:“非遗民俗+传统文化”营造主客共享新空间 构建文化和旅游深度融合新场景
着墨数字赋能 浙江细绘未来乡村“共富图”_世界热头条
中央纪委国家监委宣传部副部长、一级巡视员郝宗强接受中央纪委国家监委审查调查
全球观察:新疆汉通跨境物流有限责任公司获得政府补助196万元
上交所中报预约时间出炉,康缘药业拔得头筹 天天头条
廖品正国医大师工作室传承中心挂牌仪式举行
【全球聚看点】锦屏县举行“铁拳风暴”行动誓师动员大会 向违法犯罪发力
2023年全国“安全宣传咨询日”主场活动在湖北武汉举行
看点:2023年浙江高龄津贴发放标准是多少?浙江高龄补贴年龄是多少
广东海事局发布航行警告:部分海域军事训练
颜色的古诗句有哪些 关于颜色的诗句有哪些?_环球热推荐
即时:“绳”采飞扬!双福二小跳绳队参加全国跳绳联赛获佳绩
我国快递业发展彰显强大韧性 今年提前34天达到600亿件_观点
宁波鄞州农商银行合计被罚120万:因贷款“三查”不尽职等_当前速看
调休再度引热议!专家:完善带薪休假制度是关键_环球关注
数字文明尼山对话|国信1号,工业化养殖的No.1 世界焦点