对json字符串python运行测试

2024-09-29 00:38:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试对一个JSON字符串运行一些测试,但是我遇到了一些困难。你知道吗

这是我目前掌握的情况。你知道吗

class PinpyTests(jsonstr, campaign):

    data = json.loads(jsonstr)
    test = False

    def dwellTest(self):
        if self.data.get('dwellTime', None) is not None:
            if self.data.get('dwellTime') >= self.campaign.needed_dwellTime:
                # Result matches, dwell time test passed.
                self.test = True

    def proximityTest(self):
        if self.data.get('proximity', None) is not None:
            if self.data.get('proximity') == self.campaign.needed_proximity:
                # Result matches, proximity passed.
                self.test = True 

基本上,我需要运行测试,只要它们存在于json字符串中。因此,如果字符串中存在接近性,它将运行接近性测试等(可能会有更多的测试,而不仅仅是这两个)

当两个测试都存在并且都需要返回true时,问题似乎就出现了。如果它们都返回true,那么测试已经通过,类可以返回true,但是,如果dwell失败,并且接近性通过,我仍然需要它失败,因为不是所有的测试都通过。(近在咫尺)。我对如何继续感到有点困惑。你知道吗


Tags: 字符串testselfnonejsontruedataget
1条回答
网友
1楼 · 发布于 2024-09-29 00:38:06

首先,您的类定义不正确。您可能需要的是一个初始化函数。为了获得您想要的结果,我建议添加一个testAll方法,检查json中的每个测试,然后运行该测试。你知道吗

class PinpyTests(Object):
    test = False

    def __init__(self, jsonstr, campaign):
        self.data = json.loads(jsonstr)
        self.campaign = campaign

    def testAll(self):
        passed = True
        if self.data.get('dwellTime') is not None:
            passed = passed and self.dwellTest()
        if self.data.get('proximity') is not None:
            passed = passed and self.proximityTest()
        return passed

    def dwellTest(self):
        if self.data.get('dwellTime') >= self.campaign.needed_dwellTime:
            # Result matches, dwell time test passed.
            return True
        return False

    def proximityTest(self):
        if self.data.get('proximity') == self.campaign.needed_proximity:
            # Result matches, proximity passed.
            return True
        return False

相关问题 更多 >