我需要比较不同行的值。每一行都是一个字典,我需要比较相邻行中键“标志”的值。我该怎么做?简单地说:
for row in range(1,len(myjson))::
if row['flag'] == (row-1)['flag']:
print yes
返回一个类型错误:'int' object is not subscriptable
即使 range 返回一个整数列表...
回应评论:
行列表是字典列表。最初,我导入一个制表符分隔的文件并使用 csv.dict 模块读取它,使其成为一个字典列表,其中的键对应于变量名。
代码:(其中 myjson 是字典列表)
for row in myjson:
print row
输出:
{'website': '', 'phone': '', 'flag': 0, 'name': 'Diane Grant Albrecht M.S.', 'email': ''}
{'website': 'www.got.com', 'phone': '111-222-3333', 'flag': 1, 'name': 'Lannister G. Cersei M.A.T., CEP', 'email': 'cersei@got.com'}
{'website': '', 'phone': '', 'flag': 2, 'name': 'Argle D. Bargle Ed.M.', 'email': ''}
{'website': 'www.daManWithThePlan.com', 'phone': '000-000-1111', 'flag': 3, 'name': 'Sam D. Man Ed.M.', 'email': 'dman123@gmail.com'}
{'website': '', 'phone': '', 'flag': 3, 'name': 'Sam D. Man Ed.M.', 'email': ''}
{'website': 'www.daManWithThePlan.com', 'phone': '111-222-333', 'flag': 3, 'name': 'Sam D. Man Ed.M.', 'email': 'dman123@gmail.com'}
{'website': '', 'phone': '', 'flag': 4, 'name': 'D G Bamf M.S.', 'email': ''}
{'website': '', 'phone': '', 'flag': 5, 'name': 'Amy Tramy Lamy Ph.D.', 'email': ''}
还:
type(myjson)
<type 'list'>