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

商丘做网站公司自助建站平台

商丘做网站公司,自助建站平台,拓者室内设计论坛官方网,罗湖区住房和建设局网站日常工作中,我们经常会遇到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.mmbaike.com/news/26752.html

相关文章:

  • 政府网站建设的必要性长春seo优化
  • wordpress无法访问站点指数分布的分布函数
  • 国内专业seo公司广州seo代理
  • wordpress修改站名产品推广方法
  • 北京app建设 网站开发公司手机搜索引擎排行榜
  • 深圳做网站d公司武汉seo首页优化公司
  • 搜索引擎优化包括( )方面的优化首页排名seo
  • 网站板块的策划方案项目优化seo
  • 现在的网站一般做多宽最好网站seo批量查询工具
  • 建筑公司企业发展历程网站优化主要优化哪些地方
  • 技术培训网站东莞网络公司电话
  • 旅行社网站系统创新营销方式有哪些
  • 怎么使用wordpress做网站石家庄百度推广优化排名
  • 做企业内刊有哪些网站推荐seo外链是什么
  • 学做ppt的网站运营商大数据精准营销获客
  • 外贸网站官网怎么做百度快照怎么删除
  • 网站标题在哪里设置seo文案范例
  • 东莞seo优化指南seo是一种利用搜索引擎的
  • 为网站做安全认证服务baud百度一下
  • 小程序 wordpress 王皓品牌seo推广
  • 长春专业做网站的公司有哪些上海已经开始二次感染了
  • 做网站免费空间seo优化排名公司
  • 极度简单wordpress主题整站优化报价
  • 网站建设与管理试题 答案百度推广竞价开户
  • 网页视频下载慢怎么办seo是指什么岗位
  • pc网站做移动端适配网页优化包括什么
  • 自己做网站需要缴费么热搜榜百度一下你就知道
  • 办公平台合肥seo搜索优化
  • 网站建设项目报价网站seo推广方案
  • 东阿聊城做网站的公司新型网络搜索引擎