【问题标题】:Replace specific character in specific location in a string Python3替换字符串Python3中特定位置的特定字符
【发布时间】:2020-11-02 05:28:05
【问题描述】:

我有这样的数据:

apiserver_client_certificate_expiration_seconds_bucket{'le'= '3.1104e+07', 'node_name'= 'pool-8zd1dm4m-toev6q0bfga1cfdb-node-saspkaac'} 0.0 
apiserver_client_certificate_expiration_seconds_bucket{'le'= '+Inf', 'node_name'= 'pool-8zd1dm4m-toev6q0bfga1cfdb-node-saspkaac'} 12522.0 
apiserver_client_certificate_expiration_seconds_sum{'node_name'= 'pool-8zd1dm4m-toev6q0bfga1cfdb-node-saspkaac'} 3946064071896.744 
apiserver_client_certificate_expiration_seconds_count{'node_name'= 'pool-8zd1dm4m-toev6q0bfga1cfdb-node-saspkaac'} 12522.0 
apiserver_storage_data_key_generation_duration_seconds_bucket{'le'= '5e-06', 'node_name'= 'pool-8zd1dm4m-toev6q0bfga1cfdb-node-saspkaac'} 0.0 
apiserver_storage_data_key_generation_duration_seconds_bucket{'le'= '1e-05', 'node_name'= 'pool-8zd1dm4m-toev6q0bfga1cfdb-node-saspkaac'} 0.0 

如您所见,格式为metrics_name{'label1'= 'value1', 'label2'= 'value2', ....'

我想让我的数据格式如下:metrics_name{label1= 'value1', label2= 'value2', ....'

我尝试使用 replace():

代码在这里:

data = (... #above)
result = result.replace('"', '')

所以结果返回格式为: metrics_name{label1= value1, label2= value2, ....

但有些标签比其他标签多/少。所以我找不到一种方法来删除 label 中的字符 ' 并将其保留在 value

有没有办法做到这一点?

【问题讨论】:

    标签: python-3.x string replace


    【解决方案1】:
    import re
    
    text = "metrics_name{'label1'= 'value1', 'label2'= 'value2', ..."
    
    result = re.sub(r"'(\w+)'=", "\g<1>=", text)
    print(result)
    

    这给出了metrics_name{label1= 'value1', label2= 'value2', ...。

    【讨论】:

      猜你喜欢
      • 2017-09-17
      • 2013-05-12
      • 2015-10-18
      • 2017-04-10
      • 2015-05-05
      • 2021-01-27
      • 2012-07-20
      • 2011-01-15
      • 1970-01-01
      相关资源
      最近更新 更多