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

商丘做网站公司网络营销服务工具

商丘做网站公司,网络营销服务工具,app开发公司天品互联,网站推广服务网站连锁日常工作中,我们经常会遇到http请求会返回大量格式固定的数据,而我们只需要其中的一部分,那么怎么提取我们想要的字段呢。 这里会介绍一种用shell脚本处理http请求返回,或者处理json格式数据的方式。 这里我们用到了 jq这个强大的…

日常工作中,我们经常会遇到http请求会返回大量格式固定的数据,而我们只需要其中的一部分,那么怎么提取我们想要的字段呢。
这里会介绍一种用shell脚本处理http请求返回,或者处理json格式数据的方式。
这里我们用到了

  1. jq这个强大的命令行JSON处理器
  • 使用.data.list选择JSON数据中的list数组。
  • 使用map(select(...))对数组中的每个对象进行筛选,只保留那些element字段包含"/base"的对象。
  • 使用map(.num)选择每个筛选后对象的num字段。
  • 使用add将所有筛选出来的coverageClassTotalNumber相加,得到总和。
  • 使用-r选项让jq输出原始文本,而不是JSON格式的字符串。
  1. if - fi:判断语句,
  2. -ne:不等于的判断,
  3. echo: 输出信息到屏幕语句,
  4. -z:字符串长度为0的判断,

例如:有一个url,这个url的id参数是可支持修改传入的:

https://abcdefg.com/api?id=$id

他的返回为:

{"status": 200,"message": "success","data": {"total": 80,"list": [{"element": "/base","pid": 1,"id": 2,"type": 3,"num": 11},{"element": "/handler","pid": 1,"id": 29,"type": 3,"num": 132},.........{"element": "/dao","pid": 1,"id": 89,"type": 3,"num": 231} ,{"element": "/runner","pid": 1,"id": 89,"type": 3,"num": 145}         ]},"timestamp": 1716818758408
}

这个返回值的“data”有上千行,而我门只需要其中所有"element"为“/base"路径,且字段为“num“的值的和。
这时,我们就可以用一个shell脚本来实现我们的诉求。

count.sh代码如下:

#!/bin/bash # 检查是否提供了参数  
if [ -z "$1" ]; then  echo "请提供参数."  exit 1  
fi  id="$1"  # URL  
url="https://abcdefg.com/api?id=$id"  # 发送curl请求并捕获输出到临时文件  
curl --location "$url" --header 'accept: */*' --header 'accept-language: zh-CN,zh;q=0.9' > temp_response.json  # 检查curl的返回值,确保请求成功  
if [ $? -ne 0 ]; then  echo "curl请求失败"  exit 1  
fi  # 使用jq计算符合条件的coverageTotalNumber之和  
totalNumber=$(jq -r ".data.list | map(select(.element | contains("base"))) | map(.num) | add" temp_response.json)  # 检查jq命令是否成功执行  
if [ $? -ne 0 ]; then  echo "jq命令执行失败"  exit 1  
fi  # 打印结果或保存到文件  
echo "符合条件的总数为: $totalNumber%"  
# 如果需要保存到文件,可以这样做:  
echo "$totalNumber" > totalNumber.txt  # 清理临时文件  
rm temp_response.json

可以在终端使用下面命令来执行

sh count.sh 123
  • 如果你收到错误 jq: command not found,这意味着你的系统中没有安装 jq 工具。jq 是一个强大的命令行 JSON 处理器,它允许你解析、过滤、查询和修改 JSON 数据。
    为了解决这个问题,你需要安装 jq。以下是在不同操作系统上安装 jq 的方法:

在 Debian/Ubuntu 系统上安装 jq:
使用 apt-get 安装:

sudo apt-get update  
sudo apt-get install jq

在 Red Hat/CentOS 系统上安装 jq:
使用 yum 安装(对于较新版本的 CentOS,可能需要使用 dnf 代替 yum):

sudo yum install jq  
sudo dnf install jq

在 macOS 上安装 jq:
使用 Homebrew 安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"  
brew install jq
http://www.ds6.com.cn/news/38725.html

相关文章:

  • 个人写真与艺术照的区别在哪广州网站优化关键词排名
  • 多说评论插件对网站优化广告推广平台赚取佣金
  • 南昌建设网站免费可用的网站源码
  • 帮一个企业做网站流程武汉seo首页
  • 近期做网站需要什么软件百度网站下拉排名
  • 网站建设赠送seo百度优化点击软件
  • 建商城网站需要什么杭州seo排名收费
  • 柳州企业网站制作哪家好南宁百度seo排名
  • 免费投资办厂河南网站推广优化排名
  • 自学网站开发流程百度广告公司联系方式
  • 全套网站搭建百度网址输入
  • 芜湖市建设办网站泉州seo托管
  • 网站怎么做分时上海优化营商环境
  • 购买网站空间域名百度快照优化的优势是什么
  • 在哪里可以看直播免费的搜索引擎优化网页
  • 企业网站建设需要做哪些工作google play store
  • 政府网站管理制度建设站长之家查询网
  • 深圳做网站便宜torrentkitty磁力天堂
  • 建站源码程序抖音怎么推广引流
  • 广东省农业农村厅官方网站做博客的seo技巧
  • 专业品牌网站建设安徽搜索引擎优化seo
  • 滨江网站开发互联网推广方式有哪些
  • 怎么做淘宝客网站和APP快手刷评论推广网站
  • 做地方行业门户网站需要什么资格网络推广是做什么的
  • 合肥市城乡建设委员会网站市场调研报告范文大全
  • 眉山市住房城乡建设局 网站大数据营销的概念
  • cms做网站容易不百度指数专业版价格
  • 网站是如何制作的百度seo规则最新
  • 做单机游戏破解的网站社群推广平台
  • 网站开发与软件开发区别搜狗网址导航