试图将字符串与字典内容进行比较

时间:2019-01-27 21:34:20

标签: python python-3.x

我有一些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的内容。

任何提示将不胜感激。

2 个答案:

答案 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"]}