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

json格式,curl命令,及轻量化处理工具

一. JSON格式

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于一个子集的JavaScript编程语言,使用人类易于阅读的文本格式来存储和表示数据。尽管名字中有“JavaScript”,但JSON是语言无关的,几乎所有的现代编程语言都支持JSON编码和解码。

一个简单的JSON对象示例:

{"name": "John","age": 30,"isStudent": false,"courses": ["Math", "Science"],"address": {"city": "New York","zipcode": "10001"}
}

二. Curl命令

2.1 Curl

Curl 是一个非常强大的命令行工具,用于从服务器传输数据或向服务器传输数据。它支持多种协议,包括HTTP、HTTPS、FTP等。Curl常用于测试RESTful API,获取网页内容,上传文件等。

基本语法:

curl [options] [URL]

例如,获取某个网站的内容:

curl http://example.com

当你需要与API交互时,比如获取JSON格式的数据,你可以这样做:

curl -X GET http://localhost:11434/api/tags

这里的-X选项指定请求的方法(GET、POST等),默认为GET。

curl这里可以展开说一下,与API交互就比如说常用的REST API

2.2 REST API

REST(Representational State Transfer)API 是一种设计风格,用于构建网络服务。它利用标准的 HTTP 方法(如 GET、POST、PUT、DELETE 等)来操作资源,并通过 URL 来标识这些资源。REST API 的设计理念是基于 Web 的架构,使得它们易于理解和使用。

  1. 资源(Resources)

    • 在 REST 中,一切都被视为资源。资源可以是任何实体,例如用户、产品、订单等。
    • 每个资源都有一个唯一的标识符(通常是 URL)。例如,/users/123 可以表示 ID 为 123 的用户。
  2. HTTP 方法

    • GET:用于检索资源。例如,GET /users/123 获取 ID 为 123 的用户信息。
    • POST:用于创建新资源。例如,POST /users 创建一个新的用户。
    • PUT:用于更新现有资源。例如,PUT /users/123 更新 ID 为 123 的用户信息。
    • DELETE:用于删除资源。例如,DELETE /users/123 删除 ID 为 123 的用户。
  3. 状态码(Status Codes)

    • REST API 使用 HTTP 状态码来表示请求的结果。
      • 200 OK:请求成功。
      • 201 Created:资源已成功创建。
      • 400 Bad Request:请求无效或格式错误。
      • 404 Not Found:请求的资源不存在。
      • 500 Internal Server Error:服务器内部错误。
  4. 无状态性(Statelessness)

  5. REST API 是无状态的,这意味着每个请求都必须包含处理该请求所需的所有信息。服务器不会存储客户端的状态信息,这有助于提高可扩展性和可靠性。
  6. 示例

    假设我们有一个简单的在线书店 API,以下是一些示例请求:

    • 获取所有书籍列表

      GET /books
    • 获取特定书籍详情

      GET /books/123
    • 创建新书籍

      POST /books
      {"title": "The Great Gatsby","author": "F. Scott Fitzgerald","price": 10.99
      }
    • 更新书籍信息

      PUT /books/123
      {"title": "The Great Gatsby","author": "F. Scott Fitzgerald","price": 12.99
      }
    • 删除书籍

      DELETE /books/123

这些API确实很好,但是不能直接在Terminal应用这些API,所以需要像Curl这样的工具        

 1. GET 请求

获取资源数据。

curl -X GET http://localhost:11434/api/tags
2. POST 请求

创建新资源。

curl -X POST http://localhost:11434/api/users \
-H "Content-Type: application/json" \
-d '{"name": "Alice", "age": 30}'
3. PUT 请求

更新现有资源。

curl -X PUT http://localhost:11434/api/users/123 \
-H "Content-Type: application/json" \
-d '{"name": "Alice", "age": 31}'
4. DELETE 请求

删除资源。

curl -X DELETE http://localhost:11434/api/users/123

三. 轻量化处理工具:jq

jq 是一个命令行工具,用于处理JSON数据。它可以用来解析、过滤、映射和转换JSON数据。对于需要快速查看或处理JSON数据的情况,jq是一个非常好的选择。

安装jq(根据你的操作系统):

sudo apt-get install jq

使用jq的例子:

  1. 美化JSON输出:将curl的结果通过管道传递给jq进行格式化。

    curl http://localhost:11434/api/tags | jq .
  2. 提取特定字段:假设你只对模型的名字和大小感兴趣

    curl http://localhost:11434/api/tags | jq '.models[] | {name, size}'
  3. 过滤数据:仅显示满足特定条件的数据,如大小大于某个值的模型。

    curl http://localhost:11434/api/tags | jq '.models[] | select(.size > 5000000000) | {name, size}'

通过结合使用curljq,你可以更高效地与API交互,并轻松处理返回的JSON数据。这在开发和调试过程中特别有用。

下面的第一个是直接拿回来的json数据,没有使用任何工具进行处理

这一个使用了jq工具进行处理,具有了明显的层次感

提取models数组,只关心数组中的name和model两个关键字

相关文章:

json格式,curl命令,及轻量化处理工具

一. JSON格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于一个子集的JavaScript编程语言,使用人类易于阅读的文本格式来存储和表示数据。尽管名字中有“JavaScript”,但JSON是语言无关的,几…...

DeepSeek模拟阿里面试——java面向对象

作为一位阿里高级Java程序员面试官,我会围绕Java面向对象编程的核心概念、实际应用以及设计原则设计问题,以全面评估候选人的理解和应用能力。以下是可能的面试问题: 基本概念与实现方式 请解释Java中封装、继承、多态的基本概念及其在Java中…...

web直播弹幕抓取分析 signature

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言 最近遇到太多难点了卡了很久&am…...

【04】RUST特性

文章目录 隐藏shadowing所有权ownership堆区&栈区所有权规则变量&数据Copy Trait与Drop TraitCopy TraitDrop Trait移动克隆函数参数与返回值的所有权参数引用可变引用悬垂引用slice生命周期隐藏shadowing 有点像同名覆盖 let mut guess = String::new();let guess: u3…...

PL/SQL块结构

目录 一、声明部分(declare) 二、执行部分(begin end) 三、异常处理部分 (Exception end) 四、代码示例 PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库…...

基于 FFmpeg 和 OpenGLES 的 iOS 视频预览和录制技术方案设计

基于 FFmpeg 和 OpenGLES 的 iOS 视频预览和录制技术方案设计 在 iOS 上实现一个基于 FFmpeg 和 OpenGLES 的视频预览和录制功能,需要结合 FFmpeg 的强大音视频处理能力和 OpenGLES 的高效图形渲染能力。以下是一个完整的技术方案设计,包含项目的架构设计、模块划分、技术选…...

【LeetCode 刷题】贪心算法(4)-区间问题

此博客为《代码随想录》贪心算法章节的学习笔记,主要内容为贪心算法区间问题的相关题目解析。 文章目录 55. 跳跃游戏45. 跳跃游戏 II452. 用最少数量的箭引爆气球435. 无重叠区间763. 划分字母区间56. 合并区间 55. 跳跃游戏 题目链接 class Solution:def canJu…...

提示工程 | 目的 | 常用技巧

什么是提示工程 提示工程也叫指令工程,Prompt就是你发给大模型的指令,比如:画幅画,写首诗等。貌似简单,但意义非凡,Prompt是AGI时代的编程语言,Prompt工程是AGI时代的软件工程,提示…...

ABP框架9——自定义拦截器的实现与使用

一、AOP编程 AOP定义:面向切片编程,着重强调功能,将功能从业务逻辑分离出来。AOP使用场景:处理通用的、与业务逻辑无关的功能(如日志记录、性能监控、事务管理等)拦截器:拦截方法调用并添加额外的行为,比如…...

Generate html

"Generate HTML"(生成 HTML)指的是通过程序或工具自动创建 HTML 代码的过程。HTML(超文本标记语言)是用于创建网页内容和结构的标准语言。生成 HTML 通常意味着通过某些方式自动化地构建或生成网页的结构和元素&#xf…...

CUDA 计算平台 CUDA 兼容性【笔记】

在 b 站看过的两个关于 CUDA 的技术分享,整理分享下对自己有用的课件。 20231130 2023第9期 聊一聊常见的AI计算平台库_哔哩哔哩_bilibili20230831 2023第6期 聊一聊CUDA兼容性_哔哩哔哩_bilibili 文章目录 CUDA 计算平台CUDA 函数库介绍英伟达三大护城河&#xff1…...

移动(新)魔百盒刷机教程[M301A_YS]

刚刚成功刷了一个坏的魔百盒,简单记录一下。 刷电视盒子有两种:卡刷和线刷。 线刷 一、线刷准备 1.刷机工具 Amlogic USB Burning Tool 晶晨线刷烧录工具 2.固件 根据盒子的型号、代工等找到对应的固件 二、线刷步骤 电脑打开下好的 Amlogic US…...

最新消息 | 德思特荣获中国创新创业大赛暨广州科技创新创业大赛三等奖!

2024年12月30日,广州市科技局公开第十三届中国创新创业大赛(广东广州赛区)暨2024年广州科技创新创业大赛决赛成绩及拟获奖企业名单,德思特获得了智能与新能源汽车初创组【第六名】【三等奖】的好成绩! 关于德思特&…...

基于机器学习的DDoS检测系统实战

基于机器学习的DDoS检测系统实战(PythonScikit-learn)|毕业设计必备 摘要:本文手把手教你从0到1实现一个轻量级DDoS攻击检测系统,涵盖数据预处理、特征工程、模型训练与可视化分析。 一、项目背景与意义 DDoS&#x…...

ubuntu安装VMware报错/dev/vmmon加载失败

ubuntu安装VMware报错/dev/vmmon加载失败,解决步骤如下: step1:为vmmon和vmnet组件生成密钥对 openssl req -new -x509 -newkey rsa:2048 -keyout VMW.priv -outform DER -out VMW.der -nodes -days 36500 -subj "/CNVMware/"ste…...

使用条件随机场(CRF)进行文本分类并评估模型性能

目标: 使用条件随机场(CRF)模型对文本数据进行分类,并评估模型的性能。任务包括读取数据、划分训练集和测试集、训练CR # 1.数据读取与预处理: # o使用open函数读取包含文本和标签的CSV文件。 # o将每一行数据分为文本…...

python的列表、元组、深拷贝、浅拷贝(四)

python的列表 一、序列1. 序列定义2. 序列数据类型包括3.特点:都支持下面的特性 二、 列表1. 列表的创建2. 列表的基本特性(1) 连接操作符喝重复操作符(2) 成员操作符(in , not in )(3) 索引(4) 切片练习(5) for循环 3. 列表的常用方法(1) 一…...

2.10作业

思维导图 C C语言...

【深度学习】多目标融合算法(四):多门混合专家网络MMOE(Multi-gate Mixture-of-Experts)

目录 一、引言 二、MMoE(Multi-gate Mixture-of-Experts,多门混合专家网络) 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场景与建模 2.3.2 模型代码实现 2.3.3 模型训练与推理测试 2.3.4 打印模型结构 三、总结 一、…...

RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决

RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决 1、报错情况 下载:https://gitcode.com/yangzongzhuan/RuoYi-Vue-Oracle 用idea打开,启动: 日志有报错: 点右侧m图标,maven有以下报误 &…...

C# OpenCV机器视觉:对位贴合

在热闹非凡的手机维修街上,阿强开了一家小小的手机贴膜店。每天看着顾客们自己贴膜贴得歪歪扭扭,不是膜的边缘贴不整齐,就是里面充满了气泡,阿强心里就想:“要是我能有个自动贴膜的神器,那该多好啊&#xf…...

Baumer工业相机堡盟相机的相机传感器芯片清洁指南

Baumer工业相机堡盟相机的相机传感器芯片清洁指南 Baumer工业相机1.Baumer工业相机传感器芯片清洁工具和清洁剂2.Baumer工业相机传感器芯片清洁步骤2.1、准备步骤2.2、清洁过程1.定位清洁工具2.清洁传感器3.使用吹风装置 Baumer工业相机传感器芯片清洁的优势设计与结…...

SQL 大厂面试题目(由浅入深)

今天给大家带来一份大厂SQL面试覆盖:基础语法 → 复杂查询 → 性能优化 → 架构设计,大家需深入理解执行原理并熟悉实际业务场景的解决方案。 1. 基础查询与过滤 题目:查询 employees 表中所有薪资(salary)大于 10000…...

在Linux上部署Jenkins的详细指南

引言 在当今快速迭代的软件开发环境中,持续集成和持续交付(CI/CD)变得越来越重要。Jenkins作为一个开源自动化服务器,能够帮助开发者更高效地进行代码集成、测试和部署。本文将详细介绍如何在Linux系统上安装和配置Jenkins。 准…...

《我在技术交流群算命》(三):QML的Button为什么有个蓝框去不掉啊(QtQuick.Controls由Qt5升级到Qt6的异常)

有群友抛出类似以下代码和运行效果截图: import QtQuick import QtQuick.ControlsWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")Button{anchors.centerIn: parentwidth: 100height: 40background: Rectangle {color: "red…...

Golang:Go 1.23 版本新特性介绍

流行的编程语言Go已经发布了1.23版本,带来了许多改进、优化和新特性。在Go 1.22发布六个月后,这次更新增强了工具链、运行时和库,同时保持了向后兼容性。 Go 1.23 的新增特性主要包括语言特性、工具链改进、标准库更新等方面,以下…...

在 PyTorch 中理解词向量,将单词转换为有用的向量表示

你要是想构建一个大型语言模型,首先得掌握词向量的概念。幸运的是,这个概念很简单,也是本系列文章的一个完美起点。 那么,假设你有一堆单词,它可以只是一个简单的字符串数组。 animals ["cat", "dog…...

deepseek API 调用-python

【1】创建 API keys 【2】安装openai SDK pip3 install openai 【3】代码: https://download.csdn.net/download/notfindjob/90343352...

PHP中的魔术方法

在 PHP 中,以两个下划线 __ 开头的方法被称为魔术方法,它们在特定场景下会自动被调用,以下是一些常见的魔术方法: 1.__construct():类的构造函数,在对象创建完成后第一个自动调用,用于执行初始…...

Git、Github和Gitee完整讲解:丛基础到进阶功能

第一部分:Git 是什么? 比喻:Git就像是一本“时光机日记本” 每一段代码的改动,Git都会帮你记录下来,像是在写日记。如果出现问题或者想查看之前的版本,Git可以带你“穿越回过去”,找到任意时间…...