Python assertIn测试语句没有找到字符串?

时间:2016-09-07 22:54:19

标签: python python-3.x

我正在使用assertIn来测试JSON字符串中的部分结果是否正确。

test_json = some_function_returning_a_dict()
self.assertIn(expected_json, test_json, "did not match expected output")

错误是

  

AssertionError:“'abc':'1.0012',”[{'abc':'1.0012',...

中找不到

我在内部字符串上使用Ctrl + F,它在结果字符串中  我正在使用Python 3.0

3 个答案:

答案 0 :(得分:3)

右。 Python的 in 运算符适用于可迭代对象。 test_json 中的子句表示"是给定项目的字典键#34;。它在词典中搜索键:值对。

为此,请使用两个步骤:

assertIn('abc', test_json)
assertEquals('1.0012', test_json['abc'])

使用适当的变量和引用进行此操作留给学生练习。 : - )

答案 1 :(得分:1)

"'abc': '1.0012',"是一个字符串,{'abc': '1.0012', }是字典

中的条目

您想要检查json中的字典条目,而不是字符串

答案 2 :(得分:1)

看起来您正在尝试在字典中查找字符串,该字符串将检查您提供的字符串是否是指定字典的键。首先,不要将您的第一个字典转换为字符串,其次要执行all(item in test_json.items() for item in expected_json.items())

之类的操作