在我的python代码中找到一个字符串的麻烦

时间:2015-08-23 16:59:13

标签: python

我是python的新手

这是我的尝试

import urllib2
email_id = input("enter the email id")
content = urllib2.urlopen('https://somewebsite.com/uniqueEmail?email={email_id}.format(email_id=email_id)').read()
print content
if content.find('"uniqueEmail":false') == True:
    print("email exists")
else:
    print("email doesnt exists")

当打印内容代码执行时,我的网站将显示

{"params":{"method":"GET","controller":"GlobalUsers","action":"uniqueEmail","email":"theemailaddress_entered"},"uniqueEmail":true}

所以如果uniqueEmail打印出true或false,具体取决于电子邮件是否存在。

现在我怀疑是

我知道通过URL中的参数传递电子邮件ID变量我做错了。

,第二个是如何检查值是真还是假?

1 个答案:

答案 0 :(得分:4)

是的,你在传递email-id变量时做错了,.format()应该超出字符串,而不是在其中。示例 -

content = urllib2.urlopen('https://somewebsite.com/uniqueEmail?email={email_id}'.format(email_id=email_id)).read()

其次,如果您的网站返回类似 -

的回复
{"params":{"method":"GET","controller":"GlobalUsers","action":"uniqueEmail","email":"theemailaddress_entered"},"uniqueEmail":true}

这看起来像是一个json响应,因此您应该使用json module将其解析为json,然后将返回一个字典,并从字典中获取uniqueEmail信息。示例 -

content = urllib2.urlopen('https://somewebsite.com/uniqueEmail?email={email_id}'.format(email_id=email_id)).read()

import json
contentdict = json.loads(content)
if contentdict.get('uniqueEmail':   
    print("email exists")
else:
    print("email doesnt exists")

我正在使用dict.get(),因为如果密钥不存在,则返回None,在这种情况下,这意味着电子邮件不存在。

此外,因为您正在使用Python 2.7,可以从评论中看到 -

  

任何想法为什么现在抛出这个错误Traceback (most recent call last): File "C:/Python27/programs/email.py", line 2, in <module> email_id = input("enter email id ") File "<string>", line 1, in <module> NameError: name 'test' is not defined

您应该使用raw_input()代替input()。示例 -

email_id = raw_input("enter the email id")