dictionary - Comparing values of different python dictionaries with different keys & structures -


this more of theoretical question anything. have 3 dictionaries have different structure/keys values may same. e.g.

dict1 = {u'd':{u'results':[{u'number':'1', u'dispurl':u'www.site.com'}, {u'number':u'2', u'dispurl':u'www.othersite.com'}] }} dict2 = {u'result_page':{u'url':u'www.greatsite.com', u'pos':u'1'}, {u'url':u'www.site.com', u'pos':u'2'}} dict3 = {u'hits':[{u'displayurl':u'www.othersite.com', u'index':u'1'}, {u'displayurl':u'www.site.com', u'index':u'2'}] } 

note how dict1 has {u'd': before {u'results':, dict1 , dict3 have different key/values enclosed in square parentheses. note how keys/values layout different in dict1 number key coming before url instead of after in dict2 , dict3, key names being different in each dictionary.

i have 3 large dictionaries , need compare them position of each url scoring purposes. i.e.

if dict1[www.site.com index] > dict2[www.site.com index]: dict1[www.site.com] score +1 

i know code snippet isn't correct it's illustration. want know need dictionaries able perform comparison this? thinking of taking required data each dictionary , putting them 3 new dictionaries uniform keys , structure, or 1 new dictionary. program has computationally quite fast don't know how affect it. of more experienced python programmers want have on this?

the effective way approach convert data canonical {url:value} format.

for example:

dict1 = {data[u'dispurl']:int(data[u'number']) data in dict1[u'd'][u'results']} dict2 = {data[u'url']:int(data[u'pos']) data in dict2[u'result_page']} dict3 = {data[u'displayurl']:int(data[u'index']) data in dict3[u'hits']} 

now like

dict1 = {u'www.othersite.com': 2, u'www.site.com': 1} dict2 = {u'www.greatsite.com': 1, u'www.site.com': 2} dict3 = {u'www.othersite.com': 1, u'www.site.com': 2} 

and comparison looks like

for url in dict1: if dict1[url] > dict2[url]: # 

Comments

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

php - Get uncommon values from two or more arrays -

Adding duplicate array rows in Php -