То, что вы называете my_dict
, не является словарем, поэтому у него нет метода iteritems
.Это список, с которым вы правильно перебираете:
for acce in my_dict:
...
Для перебора двух списков вместе используйте
for acce, gyro in zip(my_dict, my_dict2):
# access items like you do before
# acce['dataX']
# within this loop you might be able to do
for (k,v),(k2,v2) in zip(acce.iteritems(), gyro.iteritems()):
...
Чтобы полностью проверить это, мне нужно будет восстановить ваши списки или JSONструктур.Вам может потребоваться предоставить минимальный пример с реальными данными вместе с ожидаемыми результатами (возможно, вы можете пропустить все детали math
, поскольку основное внимание уделяется итерации по структурам данных.
С вашими примерами - копируйте-n-paste в качестве списков словарей. (PY3)
In [1]: list1=[{"dataX":"- 0.9621435403823853","dataY":"2.9307477474212646","dataZ":"
...: 8.861872673034668"},
...: {"dataX":"-1.1992958784103394","dataY":"3.096036195755005","dataZ":"8.8954105
...: 37719727"},
...: {"dataX":"-2.95518159866333","dataY":"2.7582736015319824","dataZ":"6.96465444
...: 5648193"}]
In [2]: list2=[{"dataX":"0.07588004320859909","dataY":"0.06340815126895905","dataZ":"
...: -0.08991656452417374"},
...: {"dataX":"-0.010938923805952072","dataY":"0.12412817031145096","dataZ":"0.036
...: 317165940999985"}.
...: {"dataX":"-0.054614730179309845","dataY":"0.015471287071704865","dataZ":"0.00
...: 968557596206665"}]
File "<ipython-input-2-91a4ce8928da>", line 3
{"dataX":"-0.054614730179309845","dataY":"0.015471287071704865","dataZ":"0.00968557596206665"}]
^
SyntaxError: invalid syntax
In [3]: list2=[{"dataX":"0.07588004320859909","dataY":"0.06340815126895905","dataZ":"
...: -0.08991656452417374"},
...: {"dataX":"-0.010938923805952072","dataY":"0.12412817031145096","dataZ":"0.036
...: 317165940999985"},
...: {"dataX":"-0.054614730179309845","dataY":"0.015471287071704865","dataZ":"0.00
...: 968557596206665"}]
In [4]: for x, y in zip(list1, list2):
...: for (k,v),(k2,v2) in zip(x.items(), y.items()):
...: print(k,k2,v,v2)
...:
dataX dataX - 0.9621435403823853 0.07588004320859909
dataY dataY 2.9307477474212646 0.06340815126895905
dataZ dataZ 8.861872673034668 -0.08991656452417374
dataX dataX -1.1992958784103394 -0.010938923805952072
dataY dataY 3.096036195755005 0.12412817031145096
dataZ dataZ 8.895410537719727 0.036317165940999985
dataX dataX -2.95518159866333 -0.054614730179309845
dataY dataY 2.7582736015319824 0.015471287071704865
dataZ dataZ 6.964654445648193 0.00968557596206665
Я использую py3, поэтому используйте item()
вместо iteritems()
.