[英]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))
>>> [1, 2, 3, 4, 1, 4, 1].count(1)
3
您可以在for循環外使用兩個計數器,然后根據True
或False
增加計數器,如下所示:
# 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.