小编Bha*_*007的帖子

Python:跟踪访问了哪些字典路径

我有一个巨大的 python 字典(写入 JSON 时几乎没有什么用处)。在将字典写入磁盘之前,有一堆例程获取该字典并使用某些路径中的信息(遗留代码)。

我想跟踪访问/使用哪些路径。一种方法是浏览这个遗留代码,我正在寻找一种避免这种情况的方法。

我可以在调用这些遗留例程之前检测代码。我能做些什么来跟踪/记录正在访问的巨大字典中的路径。

例如

{

  "a": {
      "b": {
            "c": "d"
       }
  }
  "e": {
      "f": {
            "g": "h"
       }
  }
Run Code Online (Sandbox Code Playgroud)

假设遗留代码访问了键“g”,我需要记录路径(e:f:g)。我想在不触及/修改遗留代码的情况下执行此操作。

python dictionary

5
推荐指数
0
解决办法
316
查看次数

kubernetes sidecar 容器可以向其他容器进程发送 unix 信号吗?

我想了解 sidecar 容器是否可以向主容器进程发送 unix 信号)。

用例是我将 Nginx 作为主要内容服务应用程序容器运行,并且我希望 sidecar 容器接收 Nginx 配置更新并通过发送信号重新加载 Nginx。这两个容器将在单个 Pod 中运行。

PS:我没有环境可以尝试,但想检查人们是否使用过这样的模式?

kubernetes

4
推荐指数
1
解决办法
2315
查看次数

elasticsearch_dsl:聚合生成多个bucket

我想生成这个:

GET /packets-2017-09-25/_search
{
  "size": 0,
  "query": {
        "match": {
            "transport_protocol": "tcp"
        }
  },
  "aggs": {
    "clients": {
      "terms": {
        "field": "layers.ip.src.keyword",
        "size": 1000,
        "order":{ "num_servers.value":"desc" }
      },
      "aggs": {
        "num_servers": {
          "cardinality": {
            "field": "layers.ip.dst.keyword",
            "precision_threshold" : 40000
          } 
        },
        "server_list": {
          "terms": {
            "field": "layers.ip.dst.keyword"
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

即我想要客户端下的两个存储桶 (num_servers) 和 (server_list)。

我正在尝试下面的代码,它出错了:

def get_streams_per_client(proto='tcp', max=40000):
    s = Search(using=client, index="packets-2017-09-25") \
               .query("match", transport_protocol=proto)
    s.aggs.bucket('clients', 'terms', field='layers.ip.src.keyword', size=max, order={"num_servers.value":"desc"})\
    .bucket('num_servers', 'cardinality', field='layers.ip.dst.keyword', precision_threshold=40000)\
    .bucket('server_list', 'terms', field='layers.ip.dst.keyword') …
Run Code Online (Sandbox Code Playgroud)

elasticsearch-dsl elasticsearch-dsl-py

2
推荐指数
1
解决办法
2033
查看次数