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
Post a Comment