python - How can I make a dictionary with a single value from repeated numbers in a csv file -


i new python , want create dictionary csv file. data has format like:

c1     c2     p    trade ger   usa     1     100 ger   ita     1     80 jpn   ita     2     120 usa   gbr     1     70 dnk   can     2     100 usa   dnk     2     70 dnk   ger     1     40 fra   ger     4     50 usa   ger     6     80 

i intend create dictionary keys countries (c1 , c2) , values products(p). this:

dic_c1c2_products={"ger": 1, 4,6 "usa":1,2,6 "ita": 1,2, "jpn": 2 "gbr":1, dnk:"2,1 "can":2 "fra:4}  

i have written following code not work properly:

rfile = open('filepath','r') dic_c1c2_products = {} in rfile :     lns = i.strip().split(',')     c1 = lns[0]     c2 = lns[1]     p = lns[2]     if not dic_c1c2_products.has_key(c1) , not dic_c1c2_products.has_key(c2):          dic_c1c2_products[c1] = [p,]          dic_c1c2_products[c2]=[p,]     elif dic_c1c2_products.has_key(c1) , not dic_c1c2_products.has_key(c2):          dic_c1c2_products[c2]=[p,]          if p not in dic_c1c2_products[c1]:               dic_c1c2_products[c1].append(p)    elif not dic_c1c2_products.has_key(c1) , dic_c1c2_products.has_key(c2):          dic_c1c2_products[c1] = [p,]          if p not in dic_c1c2_products[c2]:              dic_c1c2_products[c2].append(p)     elif dic_c1c2_products.has_key(c1) , dic_c1c2_products.has_key(c2):          if p not in dic_c1c2_products[c2] , dic_c1c2_products[c1]:              dic_c1c2_products[c1].append(p)              dic_c1c2_products[c2].append(p) 

any appreciated.

you can use collections.defaultdict :

import csv collections import defaultdict d= defaultdict(set)  open('eggs.csv', 'rb') csvfile:      spamreader = csv.reader(csvfile, delimiter=',')      row in spamreader:           i,j,k=row[:3]           d[i].add(k)           d[j].add(k) 

all need create defaultdict set object value loop on rows , insert 1st , 2nd key , add 3rd element set value.


Comments

Popular posts from this blog

shopping cart - Page redirect not working PHP -

php - How to modify a menu to show sub-menus -

python - Installing PyDev in eclipse is failed -