首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python如何合并从函数和循环获得的字典

Python如何合并从函数和循环获得的字典
EN

Stack Overflow用户
提问于 2022-11-07 09:50:27
回答 1查看 51关注 0票数 0

我有几个请求Prometheus提供不同的度量标准,我想将它们合并到一个字典中。结果的目标应该是:{'domain': 'domain.com', 'uptime': '100', 'threats_number': '12345'}

代码语言:javascript
复制
# Uptime
def uptime_percent():
    uptime_data = prom.custom_query(
        query="avg_over_time(host_tracker_uptime_percent{job='donodeexporter'}[10d])"
    )
    for domain_z in uptime_data:
        domain_zone = domain_z['metric']['zone']
        uptime = domain_z['value'][1]
        yield ({"domain": f'{domain_zone}', "uptime": f'{uptime}'})
代码语言:javascript
复制
# Cloudflare threats total by zone
def cloudflare_threats():
    cloudflare_threats_total = prom.custom_query(
        query="sum by(zone) (increase(cloudflare_zone_threats_total{job='cloudflare'}[10d]))"
    )
    for domain_z in cloudflare_threats_total:
        domain_zone = domain_z['metric']['zone']
        threats_number = domain_z['value'][1]
        yield ({"domain": f'{domain_zone}', "threats_number": f'{threats_number}'})
EN

回答 1

Stack Overflow用户

发布于 2022-11-07 14:03:01

它可能不优雅,但部分适合我

代码语言:javascript
复制
# Uptime
def uptime_percent():
    uptime_data = prom.custom_query(
        query="avg_over_time(host_tracker_uptime_percent{job='donodeexporter'}[10d])"
    )
    for domain_z in uptime_data:
        domain_zone = domain_z['metric']['zone']
        uptime = domain_z['value'][1]
        yield dict(([("domain", f'{domain_zone}'), ("uptime", f'{uptime}')]))


# Cloudflare threats total by zone
def cloudflare_threats():
    cloudflare_threats_total = prom.custom_query(
        query="sum by(zone) (increase(cloudflare_zone_threats_total{job='cloudflare'}[10d]))"
    )
    for domain_z in cloudflare_threats_total:
        domain_zone = domain_z['metric']['zone']
        threats_number = domain_z['value'][1]
        yield dict(([("domain", f'{domain_zone}'), ("threats", f'{threats_number}')]))


result_uptime = list(uptime_percent())
result_threats = list(cloudflare_threats())
result_dict = {"total_stats": result_uptime + result_threats}
result_json = json.dumps(result_dict)
print(result_json)

这并不优雅,因为我仍然没有想要的JSON。The new question is here :)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74344640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档