You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python2字典格式化输出与WebServer日志curl获取技术问询翻译

问题2:如何解析并处理通过curl获取的WebServer JSON日志?

我可以通过curl命令curl http://10.10.10.10.server1.com/logs从WebServer获取日志,返回的示例数据如下:

[{"Database":"Database2","Version":"0.1.2","Day_time":329477060,"My_count":102075020,"ProjectID":55358627,"Final_time":46716393}, {"Database":"Database200","Version":"0.1.0","Day_time":5167727780,"My_count":4724597678,"ProjectID":1708358878,"Final_time":3016238800}, {"Database":"Database1","Version":"1.1.1","Day_time":1647140700,"My_count":7833711472,"ProjectID":5241471510,...}]

请问如何用Python或常用命令行工具解析这些数据,并完成筛选、统计等后续操作?

回答:

1. 使用Python解析与处理

步骤1:获取并解析JSON数据

可以结合subprocess执行curl命令,再用json模块解析返回的字符串:

import subprocess
import json

# 执行curl命令获取日志
log_result = subprocess.check_output(["curl", "http://10.10.10.10.server1.com/logs"])
# 解析为Python列表/字典结构
log_data = json.loads(log_result)

步骤2:常见处理示例

  • 筛选指定数据库的日志条目:
# 筛选Database为"Database1"的所有日志
filtered_entries = [item for item in log_data if item["Database"] == "Database1"]
print(filtered_entries)
  • 统计所有条目的My_count总和:
total_my_count = sum(item["My_count"] for item in log_data)
print("总My_count数值: %d" % total_my_count)
  • 格式化输出解析后的日志:
    结合pprint模块可以让结构化数据更易读:
import pprint
pprint.pprint(log_data)

2. 使用命令行工具快速处理

若无需编写代码,可使用jq命令行工具直接处理JSON数据:

  • 筛选Database为"Database2"的条目:
curl http://10.10.10.10.server1.com/logs | jq '.[] | select(.Database == "Database2")'
  • 计算所有条目的My_count总和:
curl http://10.10.10.10.server1.com/logs | jq '[.[].My_count] | add'

内容的提问来源于stack exchange,提问作者user3330284

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:42:11