我正在尝试用“0”替换电子表格中的“1”值。出于工作流程的原因,我想将 a 中的数据作为 csv Dictreader 对象读取。但是,我对这种数据类型感到困惑,并且可以使代码正常工作。这是输入:
>>> 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'}]
以下代码将适当地更新值,但我不知道如何根据这些规则更新整个 Dictreader 对象。
>>>for line in inreader:
>>> newline = [v.replace('1', '0') for 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']
理想情况下,我想创建一个新的“inreader”对象,上面的值替换原始值。