Replace key values in a python csv Dictreader object -
i trying replace "1" values in spreadsheet "0". workflow reasons read data in csv dictreader object. confused data type , quite code work. here input:
>>> print inreader [{'person1': '1', 'person2': '1', 'gene': 'test1', 'person4': '1', 'person3': '1'}, {'person1': '1', 'person2': '0', 'gene': 'test2', 'person4': '0', 'person3': '0'}, {'person1': '1', 'person2': '0', 'gene': 'test3', 'person4': '0', 'person3': '1'}, {'person1': '0', 'person2': '0', 'gene': 'test4', 'person4': '0', 'person3': '0'}, {'person1': '-', 'person2': '0', 'gene': 'test5', 'person4': '-', 'person3': '0'}, {'person1': '2', 'person2': '1', 'gene': 'test9', 'person4': '2', 'person3': '1'}]
the following code update values appropriately, can't figure out how update entire dictreader object according these rules.
>>>for line in inreader: >>> newline = [v.replace('1', '0') k,v in line.items() ] >>> print newline ['0', '0', 'test0', '0', '0'] ['0', '0', 'test2', '0', '0'] ['0', '0', 'test3', '0', '0'] ['0', '0', 'test4', '0', '0'] ['-', '0', 'test5', '-', '0'] ['2', '0', 'test9', '2', '0']
i ideally create new "inreader" object with values above replacing original values.
inreader = [{'person1': '1', 'person2': '1', 'gene': 'test1', 'person4': '1', 'person3': '1'}, {'person1': '1', 'person2': '0', 'gene': 'test2', 'person4': '0', 'person3': '0'}, {'person1': '1', 'person2': '0', 'gene': 'test3', 'person4': '0', 'person3': '1'}, {'person1': '0', 'person2': '0', 'gene': 'test4', 'person4': '0', 'person3': '0'}, {'person1': '-', 'person2': '0', 'gene': 'test5', 'person4': '-', 'person3': '0'}, {'person1': '2', 'person2': '1', 'gene': 'test9', 'person4': '2', 'person3': '1'}] result = [] line in inreader: newline = dict([(k,v.replace('1', '0')) k,v in line.items() ]) result.append(newline) print result
the result is
[{'person2': '0', 'person3': '0', 'person1': '0', 'person4': '0', 'gene': 'test0'}, {'person2': '0', 'person3': '0', 'person1': '0', 'person4': '0', 'gene': 'test2'}, {'person2': '0', 'person3': '0', 'person1': '0', 'person4': '0', 'gene': 'test3'}, {'person2': '0', 'person3': '0', 'person1': '0', 'person4': '0', 'gene': 'test4'}, {'person2': '0', 'person3': '0', 'person1': '-', 'person4': '-', 'gene': 'test5'}, {'person2': '0', 'person3': '0', 'person1': '2', 'person4': '2', 'gene': 'test9'}]
Comments
Post a Comment