【发布时间】:2017-11-05 19:05:56
【问题描述】:
目前,当输入是公司时,例如 LinkedIn,代码运行良好并返回正确的消息。电子邮件输入根本不起作用。有什么建议么?当前代码如下:
import urllib
import json
userInput = input('Do you want to find an email (E) or company (C)? ')
userInput = userInput.upper()
def getResponse(url):
cleanUrl = urllib.parse.quote_plus(url, safe=':/?&=')
try:
myRequest = urllib.request.Request(cleanUrl, headers={'User-Agent': 'Chrome'})
myResponse = urllib.request.urlopen(myRequest).read().decode('utf-8')
myJSON = json.loads(myResponse)
return myJSON
except urllib.error.HTTPError as err:
print('We failed with error code - ', err.code, '(', err.reason, ')')
return
except:
print("Something else went terribly wrong!")
def takeInput():
url = 'https://haveibeenpwned.com/api/v2/'
if userInput == 'E':
email = input('What email do you want me to search for? ')
fixedurl = url + 'breachedaccount/' + email
elif userInput == 'C':
company = input('What company do you want me to search for? ')
fixedurl = url + 'breach/' + company
else:
print('Invalid entry. Please type E or C.')
myJSON = getResponse(fixedurl)
for data in myJSON:
name = myJSON.get("Name")
date = myJSON.get("BreachDate")
count = myJSON.get("PwnCount")
itemsLost = myJSON.get("DataClasses")
print("The", name,"breach occurred on", date,"and", count,"accounts were compromised. Iteams lost include:")
print(itemsLost)
break
takeInput()
【问题讨论】:
标签: python json python-3.x urllib