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
相关产品推荐
相关产品推荐

