当前位置: 首页 > news >正文

Python JSON的深度解析:从基础到应用

Python JSON的深度解析:从基础到应用

flyfish

什么是JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于一个子集的JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999。JSON采用完全独立于语言的文本格式,但也使用类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使得JSON成为理想的数据交换语言。

Python中的json库和Flask中的jsonify

  • Python json:这是Python标准库的一部分,提供了将Python对象转换为JSON格式字符串(序列化)以及将JSON格式字符串转换回Python对象(反序列化)的功能。主要方法包括dumps()用于序列化,loads()用于反序列化。

  • Flask中的jsonify:这是Flask框架提供的一个便捷函数,用来生成JSON响应。它不仅将数据转换为JSON格式,还会设置HTTP响应的Content-Type为application/json,非常适合构建API服务时返回JSON数据给客户端。

JSON的例子

{"name": "张三","age": 30,"is_student": false,"courses": ["数学", "物理"],"address": {"city": "北京","zip_code": "100084"}
}

如何组成JSON及解析

  • 组成JSON:在Python中使用json库来创建JSON字符串非常简单。例如:
import jsondata = {'name': '李四','age': 25,'is_student': True,'courses': ['化学', '生物'],'address': {'city': '上海','zip_code': '200000'}
}json_str = json.dumps(data, ensure_ascii=False)
print(json_str)
  • 解析JSON:同样地,可以使用json.loads()来解析JSON字符串回到Python对象:
parsed_data = json.loads(json_str)
print(parsed_data)

使用Python的json库来解析

import json# 假设这是从网络获取的复杂JSON字符串
json_str = '''
{"school_name": "实验中学","location": {"city": "济南","address": "济南经十路"},"students": [{"name": "张三", "age": 15, "grades": {"数学": 93, "英语": 88}},{"name": "李四", "age": 14, "grades": {"数学": 97, "英语": 92}},{"name": "王五", "age": 16, "grades": {"数学": 90, "英语": 85}}]
}
'''# 解析JSON字符串
data = json.loads(json_str)# 打印学校名称
print("学校名称:", data['school_name'])# 遍历并打印学生信息
for student in data['students']:print(f"姓名: {student['name']}, 年龄: {student['age']}")for subject, grade in student['grades'].items():print(f"  {subject}: {grade}")# 修改某个学生的成绩并重新转换为JSON字符串
data['students'][0]['grades']['数学'] = 95
updated_json_str = json.dumps(data, ensure_ascii=False, indent=4)
print("\n更新后的JSON字符串:")
print(updated_json_str)

常用函数

  • json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

    • 将Python对象写入文件(或类似文件的对象)。
    • ensure_ascii: 如果为False, 则允许非ASCII字符直接输出而不是转义序列。
    • indent: 控制缩进以美化输出。
  • json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

    • 将Python对象转换为JSON格式的字符串。
  • json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

    • 从文件(或类似文件的对象)读取JSON数据并解码成Python对象。
  • json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

    • 将JSON格式的字符串解码成Python对象。

显示汉字

在处理包含中文字符的JSON时,确保ensure_ascii参数设置为False非常重要。这样,Python不会将非ASCII字符转换为Unicode转义序列,而是直接输出原始字符。例如:

data = {'name': '李华','message': '你好,世界!'
}# 确保ensure_ascii=False来正确显示中文
json_str = json.dumps(data, ensure_ascii=False)
print(json_str)

这将输出实际的中文字符而非其Unicode编码形式。同样,在使用json.dump()写入文件时也应设置ensure_ascii=False,以确保文件中保存的是原始中文字符。

在Flask中使用jsonify来构建返回JSON格式数据的API

jsonify是Flask提供的一个便捷函数,用于生成JSON响应,并自动设置HTTP响应的Content-Type为application/json。创建一个简单的Flask应用,该应用有一个API端点,它返回一些用户信息作为JSON格式的数据。

安装Flask

首先,确保你已经安装了Flask。如果还没有安装,可以使用pip来安装:

pip install Flask
创建Flask应用

下面是一个完整的示例代码,展示了如何使用jsonify函数来返回JSON数据。

from flask import Flask, jsonify, requestapp = Flask(__name__)# 模拟的用户数据
users = [{"id": 1, "name": "张三", "age": 30},{"id": 2, "name": "李四", "age": 25},{"id": 3, "name": "王五", "age": 28}
]# 获取所有用户的API
@app.route('/api/users', methods=['GET'])
def get_users():return jsonify(users)# 根据ID获取单个用户的API
@app.route('/api/users/<int:user_id>', methods=['GET'])
def get_user(user_id):user = next((user for user in users if user["id"] == user_id), None)if user is not None:return jsonify(user)else:return jsonify({"error": "User not found"}), 404# 添加新用户的API
@app.route('/api/users', methods=['POST'])
def add_user():new_user = request.get_json()if not new_user or 'name' not in new_user or 'age' not in new_user:return jsonify({"error": "Invalid input"}), 400# 生成一个新的用户IDnew_user['id'] = max(user['id'] for user in users) + 1users.append(new_user)return jsonify(new_user), 201# 更新用户的API
@app.route('/api/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):update_data = request.get_json()user = next((user for user in users if user["id"] == user_id), None)if user is None:return jsonify({"error": "User not found"}), 404user.update(update_data)return jsonify(user)# 删除用户的API
@app.route('/api/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):global usersinitial_length = len(users)users = [user for user in users if user["id"] != user_id]if len(users) < initial_length:return jsonify({"message": "User deleted"}), 200else:return jsonify({"error": "User not found"}), 404if __name__ == '__main__':app.run(debug=True)

运行应用

保存上述代码到一个文件(例如app.py),然后在终端中运行:

python app.py

默认情况下,Flask应用会在http://127.0.0.1:5000/上运行。

测试API

你可以使用curl命令或者Postman等工具来测试这些API端点。以下是一些示例请求:

  • 获取所有用户

    curl -X GET http://127.0.0.1:5000/api/users
    
  • 根据ID获取单个用户

    curl -X GET http://127.0.0.1:5000/api/users/1
    
  • 添加新用户

    curl -X POST -H "Content-Type: application/json" -d '{"name": "赵六", "age": 22}' http://127.0.0.1:5000/api/users
    
  • 更新用户信息

    curl -X PUT -H "Content-Type: application/json" -d '{"age": 31}' http://127.0.0.1:5000/api/users/1
    
  • 删除用户

    curl -X DELETE http://127.0.0.1:5000/api/users/1
    

Python 原始类型与 JSON 类型之间的对应关系

当客户端(如浏览器、移动应用)需要从服务器获取数据时,通常会请求 JSON 格式的数据。服务器端将 Python 对象序列化为 JSON 字符串,并发送给客户端,需要将 Python 数据结构(如字典、列表等)转换为 JSON 字符串。
在 Python 中,json 模块提供了 dumps()loads() 方法来进行序列化(Python 到 JSON)和反序列化(JSON 到 Python)。

Python 类型JSON 类型备注
dictobject字典会被转换为 JSON 对象
list, tuplearray列表和元组都会被转换为 JSON 数组
strstring字符串保持不变
int, floatnumber整数和浮点数都被转换为 JSON 数字
TruetruePython 的布尔值 True 转换为 JSON 的 true
FalsefalsePython 的布尔值 False 转换为 JSON 的 false
NonenullPython 的 None 转换为 JSON 的 null
示例代码

以下是一些具体的示例,展示了如何将 Python 数据结构转换为 JSON 字符串:

import json# Python 数据结构
data = {"name": "张三","age": 30,"is_student": False,"courses": ["数学", "物理"],"address": {"city": "北京","zip_code": "100084"},"scores": {"数学": 93, "英语": 88},"active": True,"metadata": None
}# 将 Python 数据结构转换为 JSON 字符串
json_str = json.dumps(data, ensure_ascii=False, indent=4)
print(json_str)# 输出:
# {
#     "name": "张三",
#     "age": 30,
#     "is_student": false,
#     "courses": [
#         "数学",
#         "物理"
#     ],
#     "address": {
#         "city": "北京",
#         "zip_code": "100084"
#     },
#     "scores": {
#         "数学": 93,
#         "英语": 88
#     },
#     "active": true,
#     "metadata": null
# }
注意事项
  • ensure_ascii=False:如果你的数据包含非ASCII字符(如中文),确保设置 ensure_ascii=False,以避免这些字符被转义为 Unicode 编码形式。

  • indent 参数:用于美化输出,指定缩进级别。

自定义序列化:如果遇到无法直接序列化的对象(如自定义类实例),可以使用 default 参数提供一个函数来处理这些情况。

def custom_serializer(obj):if isinstance(obj, datetime.datetime):return obj.isoformat()raise TypeError(f"Type {type(obj)} not serializable")json_str = json.dumps(data, default=custom_serializer)

相关文章:

Python JSON的深度解析:从基础到应用

Python JSON的深度解析&#xff1a;从基础到应用 flyfish 什么是JSON&#xff1f; JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式。它基于一个子集的JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999…...

创建三个节点

1. 节点克隆 根据教程Hadoop编译安装-CSDN博客将一台机器的hadoop的环境搭建好。 在虚拟机的列表中选中一台机器&#xff0c;右键—>管理—>克隆 填好【虚拟机名称】&#xff0c;选择本地存储位置&#xff0c;点击完成&#xff0c;就节点克隆完成了。 2. 修改IP地址 编…...

滤波器 | 原理 / 分类 / 特征指标 / 设计

注&#xff1a;本文为 “滤波器” 相关文章合辑。 未整理去重。 浅谈滤波器之 —— 啥是滤波器 原创 RF 小木匠 射频学堂 2020 年 03 月 25 日 07:46 滤波器&#xff0c;顾名思义&#xff0c;就是对信号进行选择性过滤&#xff0c;对不需要的信号进行有效滤除。按照其传输信…...

Flutter - 初体验

项目文件目录结构介绍 注&#xff1a;创建 Flutter 项目名称不要包含特殊字符&#xff0c;不要使用驼峰标识 // TODO 开发中运行一个 Flutter 三种启动方式 Run 冷启动从零开始启动Hot Reload 热重载执行 build 方法Hot Restart 热重启重新运行整个 APP 先看效果&#xff0c…...

OSPF(开放路径最短优先)

ospf优先级&#xff1a;内部优先级默认为10&#xff0c;外部优先级默认为150 1.ospf的三张表 &#xff08;1&#xff09;邻居表 <记录邻居状态和关系> &#xff08;2&#xff09;拓扑表 <链路状态数据库> &#xff08;3&#xff09;路由表 <对链路状态数据库进…...

SpringBoot 排除一些包的注入

文章目录 需求一、使用 ComponentScan 需求 在系统迭代的过程中&#xff0c;有一些 Controller 大批量的不再使用&#xff0c;或者有一些接口我们不想再提供给外界 一、使用 ComponentScan SpringBootApplication(scanBasePackages "com.zrb.excludeSomePkg") Comp…...

【Python爬虫(21)】从0到1:Python与MySQL的深度融合

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…...

数据结构-----双向链表

一、双向循环列表 head.h #ifndef __head_h__ #define __head_h__ #include <stdio.h> #include <string.h>…...

idea 无法下载源码

作为一个程序猿&#xff0c;难免会跟源码打交道&#xff0c;可是在下载源码有时候&#xff0c;会提示找不到对象&#xff0c;这是什么原因呢&#xff1f;今天我们来解决这个问题。 问题&#xff1a;idea无法下载源码 Cannot download sources Sources not found for:org.sprin…...

计算机网络-OSI七层参考模型与数据封装,网络安全零基础入门到精通实战教程!

目录 一、网络 1、网络的定义 2、网络的分类 3、网络的作用 4、网络的数据传输方式 5、网络的数据通讯方式 二、OSI七层参考模型 1、网络参考模型定义 2、分层的意义 3、分层与功能 4、TCP\IP五层模型 三、参考模型的协议 1、物理层 2、数据链路层 3、网络层 4…...

洛谷 P2234 [HNOI2002] 营业额统计(详解)c++

题目链接&#xff1a;P2234 [HNOI2002] 营业额统计 - 洛谷 1.题目分析 输入输出样例&#xff1a;根据题目知第一天的最小波动值为第一天的营业额&#xff0c;所以第一天的最小波动值是5&#xff0c;算出第二天的最小波动值就说拿前面的数分别减当前的数&#xff0c;并且取一个…...

Go日期时间处理工具Carbon

**注意&#xff1a;**本文大部分内容摘抄自-https://github.com/dromara/carbon/blob/master/README.cn.md使用文档 一、简介 一个轻量级的、易于使用的、语义智能的日期时间处理库&#xff0c;支持链式调用&#xff0c;已被 awesome-go 收录&#xff0c;现已经捐赠给了 drom…...

【Bert】自然语言(Language Model)入门之---Bert

every blog every motto: Although the world is full of suffering&#xff0c; it is full also of the overcoming of it 0. 前言 对bert进行梳理 论文&#xff1a; BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 时间&#xff1a;…...

鸿蒙NEXT开发-网络管理

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 目录 1. 网络管理-应用权限 1.1 概述 1.2 配…...

ceph HEALTH_WARN clock skew detected on mon.f, mon.o, mon.p, mon.q

问题 ceph health detail[WRN] MON_CLOCK_SKEW: clock skew detected on mon.f, mon.o, mon.p, mon.qmon.f clock skew 0.243128s > max 0.05s (latency 0.000836159s)mon.o clock skew 16.249s > max 0.05s (latency 0<...

Web开发技术概述

Web开发技术涵盖了前端和后端开发&#xff0c;以及数据库技术。前端开发包括使用HTML、CSS、JavaScript等原生技术&#xff0c;以及jQuery、Bootstrap、AngularJS、React、Vue等框架。后端开发则涉及ASP.NET、PHP、Python Web&#xff08;Flask、Django&#xff09;、Java Web&…...

级联选择器多选动态加载

一.级联展示 注&#xff1a;因为级联选择器这里是动态加载&#xff0c;因此如果上来选中一级就需要加载出后面三级的全部数据&#xff0c;依然会很卡&#xff0c;因此&#xff0c;和产品协商把一二级多选框去掉了&#xff0c;这样也避免了你选择一级不能实现子级被全部选中的问…...

三、数据治理应用开发整体架构

1.数据治理应用开发整体架构概览 该架构图描绘了一个全面的数据治理应用开发平台&#xff0c;旨在为用户提供从数据调研、治理构建、资产管理到应用开发、运维监控等全生命周期的一体化服务。整体架构呈现出模块化、松耦合的特点&#xff0c;并强调低代码开发和业务中台能力。 …...

【附带脚本】解决notion加载慢问题

问题原因 notion网站的服务器在国外&#xff0c;因为网络问题&#xff08;国际出口带宽限制&#xff09;导致访问速度较慢和域名解析延迟等问题。 解决方案 通过在 hosts 文件中直接指定一个更快的 IP 地址&#xff08;例如国内镜像服务器&#xff09;&#xff0c;可以显著提…...

解锁机器学习核心算法 | 决策树:机器学习中高效分类的利器

引言 前面几篇文章我们学习了机器学习的核心算法线性回归和逻辑回归。这篇文章我们继续学习机器学习的经典算法——决策树&#xff08;Decision Tree&#xff09; 一、决策树算法简介 决策树算法是一种典型的分类方法&#xff0c;也是一种逼近离散函数值的方法。它的核心思想…...

网络原理-HTTP/HTTPS

文章目录 HTTPHTTP 是什么&#xff1f;理解“应用层协议”理解 HTTP 协议的⼯作过程HTTP 协议格式抓包⼯具的使用抓包⼯具的原理抓包结果协议格式总结 HTTP 请求&#xff08;Request&#xff09;认识 URLURL 的基本格式关于URL encode 认识“⽅法”&#xff08;method&#xff…...

仿 Sora 之形,借物理模拟之技绘视频之彩

来自麻省理工学院、斯坦福大学、哥伦比亚大学以及康奈尔大学的研究人员携手开源了一款创新的3D交互视频模型——PhysDreamer&#xff08;以下简称“PD”&#xff09;。PD与OpenAI旗下的Sora相似&#xff0c;能够借助物理模拟技术来生成视频&#xff0c;这意味着PD所生成的视频蕴…...

C#多线程异步连接MySQL与SQLserver数据库

C#多线程异步连接MySQL与SQLserver数据库 一、前言二、多线程异步连接数据库代码2.1代码块2.2代码说明 参考文档 一、前言 当编写代码连接多台设备上的数据库时&#xff0c;如果采用同步逐个连接的方式&#xff0c;在网络畅通的情况下连接速度尚可&#xff0c;但当其中一台设备…...

DeepSeek告别服务器繁忙

原文地址&#xff1a;http://shen.iwiki.fun/2025/02/09/free-deepseek/ 博客地址&#xff1a;http://shen.iwiki.fun 一、申请API 1、硅基流动 免费额度&#xff1a;14元 注&#xff1a;平台 2000 万 Tokens 特指 Qwen2.5-14B-Instruct 模型单价下的数量&#xff0c;实际到账…...

Tomcat下载,安装,配置终极版(2024)

Tomcat下载&#xff0c;安装&#xff0c;配置终极版&#xff08;2024&#xff09; 1. Tomcat下载和安装 进入Apache Tomcat官网&#xff0c;我们可以看到这样一个界面。 现在官网目前最新版是Tomcat11&#xff0c;我用的是Java17&#xff0c;在这里我们选择Tomcat10即可。Tom…...

Docker 部署AnythingLLM

两个指令搞定 1.下载镜像 docker pull mintplexlabs/anythingllm 2.运行容器 export STORAGE_LOCATION$HOME/anythingllm mkdir -p $STORAGE_LOCATION chmod -R 777 $STORAGE_LOCATION touch "$STORAGE_LOCATION/.env" docker run -d -p 3001:3001 \ --cap-add SY…...

uniapp 支付宝小程序自定义顶部导航栏

我是用的是uniapp 的 uni-nav-bar 组件 根据项目需求配置即可 <uni-nav-bar v-if"title" :left-icon"leftIcon" :title"title" :statusBar"true" :fixed"true" clickLeft"goBack":border"false" :ba…...

Python 库自制 Cross-correlation 算法(当采样点已经1 对 1 匹配)

Python 库自制 Cross-correlation 算法 引言正文引言 虽然 Scipy 库中包含了成熟的 Cross-correlation 算法,但是有些时候我们无法使用现成的库进行数据处理。这里介绍如何使用 Python 基础函数自制 Cross-correlation 算法。后续读者可以将该算法转换为其他各类语言。 正文…...

SpringBoot+uniApp日历备忘录小程序系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.日历渲染代码&#xff1a;2.保存备忘录代码&#xff1a;3.删除备忘录代码&#xff1a; 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBootuniApp框架开…...

【赵渝强老师】Spark RDD的缓存机制

Spark RDD通过persist方法或cache方法可以将计算结果的缓存&#xff0c;但是并不是这两个方法被调用时立即缓存&#xff0c;而是触发后面的action时&#xff0c;该RDD才会被缓存在计算节点的内存中并供后面重用。下面是persist方法或cache方法的函数定义&#xff1a; def pers…...

基于 Spring Boot 的社区居民健康管理系统部署说明书

目录 1 系统概述 2 准备资料 3 系统安装与部署 3.1 数据库部署 3.1.1 MySQL 的部署 3.1.2 Navicat 的部署 3.2 服务器部署 3.3 客户端部署 4 系统配置与优化 5 其他 基于 Spring Boot 的社区居民健康管理系统部署说明书 1 系统概述 本系统主要运用了 Spri…...

《C语言动态顺序表:从内存管理到功能实现》

1.顺序表 1.1 概念 顺序存储的线性表&#xff0c;叫顺序表。 1.2顺序表存放的实现方式 可以使用数组存储数据&#xff0c;可以实现逻辑上相连&#xff0c;物理内存上也相连。也可以使用malloc在堆区申请一片连续的空间&#xff0c;存放数据&#xff0c;实现逻辑上相连&#…...

C++ 程序 return value 1 是什么原因

又是一次deepseek生成C 程序 return value 1 是什么原因 好的&#xff0c;用户问C程序返回值为1是什么原因。首先&#xff0c;我需要回想一下常见的导致程序返回非零值的情况。通常&#xff0c;返回1可能表示程序因为某种错误而终止。但具体原因可能有很多种&#xff0c;需要分…...

《DeepSeek 一站式工作生活 AI 助手》

最近国产AI工具DeepSeek在全球火出圈&#xff0c;登顶多个国家应用商店&#xff0c;下载量一路飙升。这匹AI “黑马” 到底凭什么征服全球用户&#xff1f;让我们全方位解锁DeepSeek——从基础入门到高阶玩法&#xff0c;从实用技巧到隐藏功能。 DeepSeek是一款功能强大的国产A…...

深入探索 DeepSeek 在数据分析与可视化中的应用

在数据驱动的时代&#xff0c;快速且准确地分析和呈现数据对于企业和个人都至关重要。DeepSeek 作为一款先进的人工智能工具&#xff0c;凭借其强大的数据处理和可视化能力&#xff0c;正在革新数据分析的方式。 1. 数据预处理与清洗 在进行数据分析前&#xff0c;数据预处理…...

【Python 学习 / 7】模块与文件操作

文章目录 前言一、导入模块1. 导入整个模块2. 导入模块中的特定函数3. 给模块或函数起别名 二、常用模块1. math 模块2. random 模块3. os 模块4. sys 模块 三、文件处理1. 打开文件2. 读取文件3. 写入文件4. 关闭文件5. 使用 with 语句管理文件 四、日期时间1. datetime 模块获…...

【DeepSeek】Mac m1电脑部署DeepSeek

一、电脑配置 个人电脑配置 二、安装ollama 简介&#xff1a;Ollama 是一个强大的开源框架&#xff0c;是一个为本地运行大型语言模型而设计的工具&#xff0c;它帮助用户快速在本地运行大模型&#xff0c;通过简单的安装指令&#xff0c;可以让用户执行一条命令就在本地运…...

计算机网络抄手 运输层

一、运输层协议概述 1. 进程之间的通信 从通信和信息处理的角度看&#xff0c;运输层向它上面的应用层提供通信服务&#xff0c;它属于面向通信部分的最高层&#xff0c;同时也是用户功能中的最低层。当网络边缘部分的两台主机使用网络核心部分的功能进行端到端的通信时&…...

激光雷达YDLIDAR X2 SDK安装

激光雷达YDLIDAR X2 SDK安装 陈拓 2024/12/15-2024/12/19 1. 简介 YDLIDAR X2官方网址https://ydlidar.cn/index.html‌YDLIDAR X2 YDLIDAR X2是一款高性能的激光雷达传感器&#xff0c;具有以下主要特点和规格参数‌&#xff1a; ‌测距频率‌&#xff1a;3000Hz ‌扫描频…...

DeepSeek-R1:使用KTransformers部署(保姆级教程)

1. 引言 KTransformers作为一个开源框架&#xff0c;专门为优化大规模语言模型的推理过程而设计。它支持GPU/CPU异构计算&#xff0c;并针对MoE架构的稀疏性进行了特别优化&#xff0c;可以有效降低硬件要求&#xff0c;允许用户在有限的资源下运行像DeepSeek-R1这样庞大的模型…...

什么是Spring Boot?

Spring Boot 是基于 Spring 框架的扩展工具&#xff0c;旨在简化 Spring 应用的初始搭建和开发流程。它通过约定优于配置和自动装配机制&#xff0c;减少了传统 Spring 开发中的繁琐配置&#xff0c;使开发者能快速构建独立运行、生产级别的应用。 Spring Boot 的核心特性 自动…...

C++ 学习路线:从入门到精通,全面掌握 C++ 编程

引言 C 是一种高性能的系统级编程语言&#xff0c;广泛应用于游戏开发、嵌入式系统、高性能计算等领域。尽管 C 的学习曲线较为陡峭&#xff0c;但掌握它将为你的职业发展带来巨大的优势。本文将为你提供一条清晰的 C 学习路线&#xff0c;帮助你从入门到精通&#xff0c;逐步…...

【算法精练】背包问题(01背包问题)

目录 1. 背包问题 2. 01背包问题 3. 优化 总结 1. 背包问题 经典的背包问题&#xff1a; 有一个背包&#xff0c;限制背包的体积&#xff1b;有一堆物品&#xff0c;从这堆物品中选择&#xff0c;在不超过背包容量的前提下&#xff0c;选出最大价值的物品&#xff1b; 从这个…...

宇树机器人G1 SDK实战和交付

最近客户有需求定制机宇树机器人G1 的功能&#xff0c;在接到需求后。进行了评估报价和开发。现在已经进入开发交付阶段 现在已经拿到了G1和H1版本的人型机器人。 需求是使用宇树机器G1 或H1在展馆进行路线移动&#xff0c;或指定移动路径&#xff0c;并且不能碰到小朋友&…...

使用EasyExcel和多线程实现高效数据导出

​ 使用EasyExcel和多线程实现高效数据导出 1. 概述 在企业级应用中&#xff0c;数据导出是一个常见的需求。为了提高导出效率&#xff0c;尤其是在处理大量数据时&#xff0c;我们可以结合使用EasyExcel库和多线程技术。本文将详细介绍如何通过EasyExcel和多线程技术实现高…...

如何监控和优化 MySQL 中的慢 SQL

如何监控和优化 MySQL 中的慢 SQL 前言一、什么是慢 SQL&#xff1f;二、如何监控慢 SQL&#xff1f;1. 启用慢查询日志启用方法&#xff1a;日志内容&#xff1a; 2. 使用 mysqldumpslow 分析日志 三、如何分析慢 SQL&#xff1f;1. 使用 EXPLAIN 分析执行计划使用方法&#x…...

SPO(Self-Supervised Prompt Optimization)自我监督Prompt提示优化的全景指南

HuggingFace 链接:https://huggingface.co/spaces/XiangJinYu/SPO 作者也与国内的 ModelScope 魔搭社区官方进行了合作,现在可以体验由 Deepseek-V3 和 Qwen-2.5-72B 等开源模型驱动的 SPO。 ModelScope 链接: https://modelscope.cn/studios/AI-ModelScope/SPO 在大语言…...

【云安全】云原生-Docker(六)Docker API 未授权访问

Docker API 未授权访问 是一个非常严重的安全漏洞&#xff0c;可能导致严重的安全风险。 什么是 Docker API &#xff1f; Docker API 是 Docker 容器平台提供的一组 RESTful API&#xff0c;用于与 Docker 守护程序进行通信和管理 Docker 容器。通过 Docker API&#xff0c;…...

9.PG数据库层权限管理(pg系列课程)第2遍

一、PostgreSQL数据库属主 Postgres中的数据库属主属于创建者&#xff0c;只要有createdb的权限就可以创建数据库&#xff0c;数据库属主不一定拥有存放在该数据库中其它用户创建的对象的访问权限。数据库在创建后&#xff0c;允许public角色连接&#xff0c;即允许任何人连接…...

Pytorch深度学习教程_3_初识pytorch

欢迎来到《PyTorch深度学习教程》系列的第三篇&#xff01;在前面的两篇中&#xff0c;我们已经介绍了Python及numpy的基本使用。今天&#xff0c;我们将深入探索PyTorch的核心功能&#xff0c;帮助你更好地理解和使用这个强大的深度学习框架。 欢迎订阅专栏&#xff1a; 深度…...