2017-01-20 10 views
0

Я пытаюсь выполнить различные проверки на основе номера индекса словаря. Итак, если index == 0, сделайте что-нибудь, иначе, если index> 0, сделайте что-нибудь еще.Проверить заказ на основании индекса в csv?

Я пытался использовать OrderedDict и индексировал его на основе items(). Но если я скажу: od.items()[0], он просто дает мне имя первого элемента. Невозможность записать условие if на основании того, был ли первый элемент уже проверен.

Также я бы предпочел не проверять мои условные условия на основе фактического значения в файле example.csv, так как он будет меняться ежедневно.

Вот мои данные кода и примера в файле csv.

Example.csv

Key_abc, Value894 
Key_xyz, Value256 
Key_hju, Value_567 

Код:

with open('example.csv','rb') as f: 
    r = csv.reader(f) 
    od = collections.OrderedDict(r) 
    for row in od: 
     if od.items() == 0: 
      print 'do some checks and run code' 
      print row, od[row] 
     elif od.items() > 0: 
      print 'go through code without checks' 
      print row, od[row] 
+0

Указатель того, что из csv? – martineau

+0

Что такое «индексный номер словаря»? Я думаю, вы хотите «enumerate» –

ответ

0

Может быть, вы могли бы сделать что-то вроде этого. (Пример ниже написан в синтаксисе python3).

#ExampleCode 
with open('example.csv') as f: 
    r = csv.reader(f) 
    od = collections.OrderedDict(r) 
    for index, row in zip(collections.count(), od): 
     if index == 0: 
      print('do some checks and run code') 
      print(row, od[row]) 
     elif index > 0: 
      print('go through code without checks') 
      print(row, od[row]) 
+0

, что вы пытаетесь сделать здесь: 'zip (collections.count(), od)'? Я думаю, вы хотите 'enumerate (od)' –

+0

Спасибо cyber-cap и juanpa.arrivillaga. Ввод индекса перед строкой и перечисление (od) дает мне именно то, что я хотел. Я изменил исходный ответ с исправлением. – cordaco