我有一些python代码,试图将字典中的列表内容与字符串进行比较。
失败是因为格式略有不同。
这是我在日志中看到的:
root - INFO - =============
root - INFO - {"email": ["123@yahoo.com", "23343@yahoo.com"]}
root - INFO - "{'email': ['123@yahoo.com', '23343@yahoo.com']}"
root - INFO - =============
这是产生此输出的代码:
logging.info("=============")
test = str(json.dumps({'email':dictemail['email']}))
logging.info(test)
logging.info(emailstring)
logging.info("=============")
if test == emailstring:
return True
我是python的新手,所以我为noob问题表示歉意。但是“ dictemail”是字典...并且在键“ email”上有一个列表。 我尝试了一些不同的操作,但似乎无法以能够通过比较的方式来格式化dictemail的内容。
任何提示将不胜感激。
答案 0 :(得分:0)
变量dictemail
是一个字典,变量test
是一个字符串,因此它们永远不能相等。为了进行比较,我可以将字典dictemail
转换为json字符串,或者将json字符串test
转换为适当的字典。我认为后者更强大。
if json.loads(test) == dictemail:
return True
答案 1 :(得分:0)
如果格式可靠地始终相同,则可以使用Python的.replace()方法。
>>> emailstring = "{'email': ['123@yahoo.com', '23343@yahoo.com']}"
>>> emailstring = emailstring.replace('"','').replace("'",'"')
>>> print(emailstring)
{"email": ["123@yahoo.com", "23343@yahoo.com"]}