2016-02-09 6 views
1

Я пытаюсь подсчитать количество пользователей внутри массива данных (см. Ниже). Как вы можете видеть, я могу успешно получить данные от response.json. Поэтому в основном я могу распечатать DATA, но мне сложно найти код для подсчета количества пользователей внутри этих данных, я знаю, что количество пользователей равно 5, но я хочу, когда добавлю дополнительного пользователя, который счет будет автоматически увеличиваться.Python подсчитывает количество данных в списке массивов из response.json

Код:

''' 
    security service tests 
    ''' 
    import sys 
    sys.path.append('..') 
    import requests 
    import json 
    from common.constants import * 
    from config.settings import environment 


    security_environment = environment()['security_service'] 
    service_url = "%s://%s:%d" % (
     security_environment['protocol'], 
     security_environment['host'], 
     security_environment['port']) 


    def test1(): 
     print "TEST 1 - get user details" 


     headers  = {'Accept': 'application/json'} 
     url   = "%s/users" % service_url 
     response = requests.get(url, headers=headers) 
     status_code = response.status_code 


     print "STATUS: %s" % status_code 
     print "DATA: %s" % response.json() 

     return status_code == HTTP_OK 

    if __name__ == "__main__": 
    num_pass = 0 
    num_fail = 0 

    for test in [test1]: 
    print "-----------------------------------------------------------" 

    if test(): 
     num_pass += 1 
     print "PASS" 
    else: 
     num_fail += 1 
     print "FAIL" 

    print "===========================================================" 
    print "%d passed, %d failed" % (num_pass, num_fail) 

Результат:

TEST 1 - get user details 
STATUS: 200 
DATA: [{u'status': u'enabled', u'created_at': u'2016-02-09 10:49:28', u'id': 1, u'updated_at': u'2016-02-09 10:49:28', u'name': u'bart'}, {u'status': u'disabled', u'created_at': u'2016-02-09 10:49:28', u'id': 2, u'updated_at': u'2016-02-09 10:49:28', u'name': u'lisa'}, {u'status': u'enabled', u'created_at': u'2016-02-09 10:49:28', u'id': 3, u'updated_at': u'2016-02-09 10:49:28', u'name': u'homer'}, {u'status': u'disabled', u'created_at': u'2016-02-09 10:49:28', u'id': 4, u'updated_at': u'2016-02-09 10:49:28', u'name': u'marge'}, {u'status': u'enabled', u'created_at': u'2016-02-09 10:49:28', u'id': 5, u'updated_at': u'2016-02-09 10:49:28', u'name': u'maggie'}] 
PASS 
=========================================================== 
1 passed, 0 failed 

Любая помощь?

+0

Вы просто сохранить данные 'данные = response.json()', и добавить новый словарь пользователя 'data.append (пользователь)' (Вы должны иметь пользователю dict first.) Чтобы получить количество элементов в списке, просто запустите 'len (data)'. –

+0

, и если вы попробуете эту ленту печати (response.json())? – wu4m4n

+0

Да, ваш ответ тоже прав, так как это сработало для меня, так это то, что я использовал data = response.json(), тогда я просто использовал ответ от другого парня (len (data)), и это сработало для меня. – julio

ответ

0

Если список содержит только пользователей, то наиболее подходящим решением является использование функции len().

Этот код выводит 5:

data = [{u'status': u'enabled', u'created_at': u'2016-02-09 10:49:28', u'id': 1, u'updated_at': u'2016-02-09 10:49:28', u'name': u'bart'}, 
    {u'status': u'disabled', u'created_at': u'2016-02-09 10:49:28', u'id': 2, u'updated_at': u'2016-02-09 10:49:28', u'name': u'lisa'}, 
    {u'status': u'enabled', u'created_at': u'2016-02-09 10:49:28', u'id': 3, u'updated_at': u'2016-02-09 10:49:28', u'name': u'homer'}, 
    {u'status': u'disabled', u'created_at': u'2016-02-09 10:49:28', u'id': 4, u'updated_at': u'2016-02-09 10:49:28', u'name': u'marge'}, 
    {u'status': u'enabled', u'created_at': u'2016-02-09 10:49:28', u'id': 5, u'updated_at': u'2016-02-09 10:49:28', u'name': u'maggie'}] 

print(len(data)) 
+0

Спасибо, что ответ сработал. вы можете видеть, как он говорит data =, а затем он показывает всех пользователей, я хочу показать «число пользователей =», а затем он покажет количество пользователей. – julio

+0

. Вы просто можете добавить 'str = ' Число пользователей = {0} '. Format (len (data)) ', чем в следующей строке' print (str) '. В этом случае будет напечатано «Число пользователей = 5». (Надеюсь, я хорошо понимаю, что вы имели в виду) –

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