2015-10-13 3 views
-2
def excel(vendor_ids): 
    for i in vendor_ids: 
     t = Test() 
     c = pycurl.Curl() 
     c.setopt(c.URL, (str("https://api.box.com/2.0/folders/%s")%(i))) 
     c.setopt(pycurl.HTTPHEADER, ['Authorization: Bearer %s'%(access_token)]) 
     c.setopt(c.WRITEFUNCTION, t.body_callback) 
     c.perform() 
     c.close() 
     contents=(t.contents) 
     #print(contents) 
     jsondict=(json.JSONDecoder().decode(contents)) 
     collect=(jsondict['item_collection']) 
     ids= (collect['entries']) 
     dic=[] 
     for k in ids: 
      print(k) 
      return k 


K=excel(vendor_ids) 

, когда я напечатать следующую печать, но когда я вернусь я только получить последнийцикла возвращающего последний объекта не предыдущий питон

{u'sequence_id': u'0', u'etag': u'0', u'type': u'folder', u'id': u'4322345554', u'name': u'rejected'} 
{u'sequence_id': u'0', u'etag': u'0', u'type': u'folder', u'id': u'4392281882', u'name': u'incoming'} 
{u'sequence_id': u'0', u'etag': u'0', u'type': u'folder', u'id': u'4392284514', u'name': u'rejected'} 
{u'sequence_id': u'0', u'etag': u'0', u'type': u'folder', u'id': u'4866336745', u'name': u'imports'} 
{u'sequence_id': u'0', u'etag': u'0', u'type': u'folder', u'id': u'4912855065', u'name': u'Incoming'} 
{u'sequence_id': u'0', u'etag': u'0', u'type': u'folder', u'id': u'4912855189', u'name': u'Rejected'} 
+0

Я пробовал отступы и другие шаги, которые были предложены для подобной проблемы без везения –

+0

Я возвращаюсь один раз за пределы цикла, что вы имеете в виду, это работает? я считаю, что результаты печатаются, просто не помещаются в объект по какой-то причине –

+0

, это точный код, который я запускаю, и он работает –

ответ

0

Что вы можете сделать, это сохранить ваши данные список и вернуться в конце. Что-то вроде этого:

lst=[] 
for k in ids: 
    print(k) 
    lst.append(k) 
return lst 

Но ваш внешний цикл по-прежнему итерацию только один раз, я не могу понять ваш код и использовать случай, но вы можете использовать yield вместо return если у вас есть generator концепции и соответствует вашему случай использования ,

+0

dic = [] для k в ids: print (k) dic.append (k) –

+0

, но теперь он возвращает последние 2 словаря. Я все еще хочу, чтобы функция возвращала все словари, код читает список ids и то, что печатается, - это то, что находится в каждой папке, для которой указан идентификатор, т.е.: vendor_ids –

Смежные вопросы