簡體   English   中英

在Python中打印結果摘要

[英]printing summary of results in Python

我有一個python腳本,它向API發出一個http請求,以便提取“成員”數據。 然后它運行一個循環來命中幾個不同的成員ID(在文本文件中列出),看看它們是否都“過期”。 我想要做的是打印出這些結果的摘要,而不是打印出每個成員的單獨結果。 這是我的Python腳本:

import requests
import json

qa_members = open("numbers_members.txt")
arraylist = []
    for line in qa_members.readlines():
    arraylist.extend(line.split())
qa_members.close()

arraylist = map(int, arraylist)


authorization_code = raw_input("please enter your authorization code: ")
members = arraylist
print "Member Check Starting"

for member in members:
    url = "http://api22.wiki.com/v1.12/member?id="+str(member)  

    header = {"Authorization": authorization_code}

    response = requests.get(url, headers=header)

    member_check = json.loads(response.text)

    final_member_status = member_check["response"]["member"]
    ["is_expired"]

    print str(member) + " expired status: " + str(final_member_status)


if final_member_status == False:
    print "All Members Passed"
else:
    print "Some members are expired, please refer to log"

print "Member Check Complete"

從這里,我得到幾個終端輸出,如:

123 expired status: False
567 expired status: False

有沒有辦法打印出結果摘要? 它可能是這樣的:

"24 members returned False"
"11 members returned True"

如果返回的狀態為“true”,找出特定成員的ID也會有所幫助:

"Member 1234 returned True"

或類似的東西。 任何幫助是極大的贊賞。

謝謝!

第一個想法:

falsecount = 0
truecount = 0
for member in members:
    url = "http://api22.wiki.com/v1.12/member?id="+str(member)  

    header = {"Authorization": authorization_code}

    response = requests.get(url, headers=header)

    member_check = json.loads(response.text)

    final_member_status = member_check["response"]["member"]["is_expired"]

    if final_member_status = False:
        falsecount += 1
    else:
        truecount +=1

print str(falsecount) + "members returned False"
print str(truecount) + "members returned False"

編輯

然而,我無法檢查final_member_status = member_check["response"]["member"]["is_expired"]是什么。 這可能是"False"False (因此,字符串或實際評估),如果它是"False" (字符串)那么我的行應該讀取, if final_member_status = "False" ,但是,如果它是一個評估(返回)如果提到的子字段不存在則返回false)上面的代碼是正確的。

創建一個列表並將結果附加到它:

results = []

for member in members:
    (...)
    results.append(str(final_member_status))

如何計算Python中列表項的出現次數?

>>> [1, 2, 3, 4, 1, 4, 1].count(1)
3

您可以在for循環外使用兩個計數器,然后根據TrueFalse增加計數器,如下所示:

# Set both counts to 0 outside the for loop
true_count = 0
false_count = 0

# increment count values based on check inside the for loop
if final_member_status : 
    true_count = true_count + 1
else :
    false_count = false_count + 1

# And finally print outside for loop in the desired format
print("{} members returned True".format(str(true_count)))
print("{} members returned False".format(str(false_count)))

這將導致兩次檢查的總和。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM