python 多級字典值合并

來源:互聯網
上載者:User

標籤:python 多級字典值合并

python 多級字典值合并:

#!/bin/env pythonimport os,sys,reimport cStringIOf=open(‘/tmp/3.txt‘)‘‘‘/tmp/3.txt content:148616  ‘192.168.0.127:8080‘    0.157   {‘200‘: 130000, ‘206‘: 250, ‘301‘: 90, ‘302‘: 6698, ‘304‘: 6018, ‘406‘: 5}148616  ‘192.168.0.127:8080‘    0.157   {‘200‘: 130999, ‘206‘: 250, ‘301‘: 90, ‘302‘: 6698, ‘304‘: 6018, ‘406‘: 5}100     ‘192.168.0.126:8080‘    90.007  {‘200‘: 1}‘‘‘d={}p=re.compile("([0-9]+).*\‘([0-9]+.[0-9]+.[0-9]+.[0-9]+:,?.*?)\‘.*?([0-9]+\.[0-9]+).*({.*})")s=cStringIO.StringIO()for line in f:        host_port=str(re.match(p,line).group(2).split(‘,‘)[-1].strip())        Drespon_code=eval(re.match(p,line).group(4)) #       Drespon_200code=eval(re.match(p,line).group(4))[‘200‘]        d[host_port]=Drespon_code        s.write(str(d)+",")        #print d        d={}ret={}for dict in eval(s.getvalue().rstrip(‘,‘)):        for key,val in dict.iteritems():                for zkey in val.keys():                        host_key=str(key+"_"+zkey)                        num=ret.get(host_key,0)                        num+=val[zkey]                        ret[host_key]=numprint ret‘‘‘{‘192.168.0.127:8080_406‘: 10, ‘192.168.0.126:8080_200‘: 1, ‘192.168.0.127:8080_200‘: 260999, ‘192.168.0.127:8080_206‘: 500, ‘192.168.0.127:8080_301‘: 180, ‘192.168.0.127:8080_302‘: 13396, ‘192.168.0.127:8080_304‘: 12036‘‘‘


本文出自 “linux系統維護” 部落格,請務必保留此出處http://linuxadmin.blog.51cto.com/2683824/1658417

python 多級字典值合并

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.