merge json (incomplete)
来源:互联网 发布:淘宝店铺诊断分析报告 编辑:程序博客网 时间:2024/05/22 16:34
from pprint import pprinta = { "_types" : [ "InterimResponseHistory" ], "uptime" : "2013-04-26T06:16:06.638Z", "permission_id" : "w131", "_cls" : "InterimResponseHistory", "response" : { "current_item_id" : "2013-T5-LJTL-002", "items" : [ { "value" : { "real" : "D", "form" : "2," }, "completed" : True, "marked" : False, "time_spent" : 1, "retry_count" : 0, "submitted" : False, "type" : "sc", "id" : "2013-T5-LJTL-002" } ], "current_group_id" : "3", "current_section_id" : "1", "time_spent" : 0, "permit" : "w131", "sections" : [ { "time_spent" : 332, "status" : "", "id" : "1" }, { "time_spent" : 0, "status" : "", "id" : "2" } ], "id" : "F05" } }b = { "_types" : [ "InterimResponseHistory" ], "uptime" : "2013-04-26T06:16:28.639Z", "permission_id" : "w131", "_cls" : "InterimResponseHistory", "response" : { "current_item_id" : "2013-T2-SWCL-003", "items" : [ { "value" : { "real" : "D", "form" : "2," }, "completed" : True, "marked" : False, "time_spent" : 2, "retry_count" : 0, "submitted" : False, "type" : "sc", "id" : "2013-T2-SWCL-003" } ], "current_group_id" : "4", "current_section_id" : "1", "time_spent" : 0, "permit" : "w131", "sections" : [ { "time_spent" : 354, "status" : "", "id" : "1" }, { "time_spent" : 0, "status" : "", "id" : "2" } ], "id" : "F05" } }def merge(former, latter): if type(former) != type(latter): return latter if type(former) not in [dict, list]: return latter if type(latter) == dict: for key in latter.keys(): if key not in former: former[key] = latter[key] else: former[key] = merge(former[key], latter[key]) return former if type(latter) == list: for item in latter: if type(item) not in [dict, list]: try: former.index(item) except: former.append(item) else: if type(item) == dict: iid = item.get('id', None) flag = True if iid: for fitem in former: if type(fitem) == dict and fitem.get('id', None) == iid: merge(fitem, item) flag = False break if flag: former.append(item) if type(item) == list: index = latter.index(item) try: former.index(index) except: if former[index] == list: merge(former[index], item) else: former.append(item) return formerprint 'before:'print 'a ---> ',pprint(a)print 'b ---> ',pprint(b)c = merge(a, b)print '-------------'print 'after:'print 'c ---> ', pprint(c)
$ python mergejson.py before:a ---> {'_cls': 'InterimResponseHistory', '_types': ['InterimResponseHistory'], 'permission_id': 'w131', 'response': {'current_group_id': '3', 'current_item_id': '2013-T5-LJTL-002', 'current_section_id': '1', 'id': 'F05', 'items': [{'completed': True, 'id': '2013-T5-LJTL-002', 'marked': False, 'retry_count': 0, 'submitted': False, 'time_spent': 1, 'type': 'sc', 'value': {'form': '2,', 'real': 'D'}}], 'permit': 'w131', 'sections': [{'id': '1', 'status': '', 'time_spent': 332}, {'id': '2', 'status': '', 'time_spent': 0}], 'time_spent': 0}, 'uptime': '2013-04-26T06:16:06.638Z'}b ---> {'_cls': 'InterimResponseHistory', '_types': ['InterimResponseHistory'], 'permission_id': 'w131', 'response': {'current_group_id': '4', 'current_item_id': '2013-T2-SWCL-003', 'current_section_id': '1', 'id': 'F05', 'items': [{'completed': True, 'id': '2013-T2-SWCL-003', 'marked': False, 'retry_count': 0, 'submitted': False, 'time_spent': 2, 'type': 'sc', 'value': {'form': '2,', 'real': 'D'}}], 'permit': 'w131', 'sections': [{'id': '1', 'status': '', 'time_spent': 354}, {'id': '2', 'status': '', 'time_spent': 0}], 'time_spent': 0}, 'uptime': '2013-04-26T06:16:28.639Z'}-------------after:c ---> {'_cls': 'InterimResponseHistory', '_types': ['InterimResponseHistory'], 'permission_id': 'w131', 'response': {'current_group_id': '4', 'current_item_id': '2013-T2-SWCL-003', 'current_section_id': '1', 'id': 'F05', 'items': [{'completed': True, 'id': '2013-T5-LJTL-002', 'marked': False, 'retry_count': 0, 'submitted': False, 'time_spent': 1, 'type': 'sc', 'value': {'form': '2,', 'real': 'D'}}, {'completed': True, 'id': '2013-T2-SWCL-003', 'marked': False, 'retry_count': 0, 'submitted': False, 'time_spent': 2, 'type': 'sc', 'value': {'form': '2,', 'real': 'D'}}], 'permit': 'w131', 'sections': [{'id': '1', 'status': '', 'time_spent': 354}, {'id': '2', 'status': '', 'time_spent': 0}], 'time_spent': 0}, 'uptime': '2013-04-26T06:16:28.639Z'}
###################################################################################
找零: 现在有1分、2分、5分的硬币各无限枚,要凑成1元有多少种凑法?
#coding: utf8def charge(a, coins, i): #将总数为a的现金换成n种硬币的不同方式的数目等于 #1, 将现金数a换成除第一种硬币之外所有其他硬币的不同方式数目, 加上 #2, 将现金数a-d换成所有种类的硬币的不同方式数目, d是第一种硬币的面值 if a == 0: return 1 if a < 0 or i >= len(coins): return 0 used = charge(a - coins[i], coins, i) notUsed = charge(a, coins, i+1) return used + notUsedprint charge(100, [1, 2, 5], 0)def charge2(a, coins): opt = [0] * (a + 1) opt[0] = 1 #第一层循环计算包含第i种零钱时j元钱的组合数目 #第二层循环j(j>coins[i])元钱的组合数目 for i in range(len(coins)): for j in range(coins[i], a + 1): opt[j] += opt[j - coins[i]] return opt[a]print charge2(100, [1,2,5])
==============================================================================
很多时候,我们需要将一些大的文件进行跨网传输,一个文件动不动几十G,当你的带宽资源紧张的时候,传输这样几个文件会花10小时,甚至几天。
nc传输文件,通过以下方法,将加快文件传输,希望对大家有所帮助。
环境:
server1 源地址
server2 目标地址
1.安装nc,多数linux发行版都默认安装了
apt-get install netcat
2.server2上操作
进入data目录,确保有足够的空间,然后启动监听
cd /data
nc -l 23456 | tar xvzf –
3.server1上操作
tar cvzf – /var/lib/mysql | nc server2 23456
- merge json (incomplete)
- 两个Json串merge
- JSON 之 SuperObject(10): Merge、Clone、ForcePath
- Incomplete Chessboard
- merge
- merge
- MERGE
- merge
- Merge
- MERGE
- merge
- merge
- merge
- Merge
- merge
- Merge
- Merge
- Merge
- Centos6.0 64位MySQL 5.6.11 CMake 安装部署
- java每日面试题2013/4/27
- 光线跟踪(简化版,只跟踪光源直接到达和环境光)
- NYOJ221 Tree(续)
- 2440 norflash 启动进不了中断解决
- merge json (incomplete)
- Part2:The CImage Class & Displaying Animations
- django总结
- 本文章用于记录平常所遇到的问题以及解决方法
- jQuery实现类似QQ下拉菜单式的效果
- C语言中access函数
- Git 介绍 ppt
- 字符串匹配算法
- jsp中url传递中文参数乱码的暂时解决方案