类型错误:字符串索引必须是整数,而不是str。我看不到什么?

2024-10-03 09:18:41 发布

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

我正在测试一些代码,想测试一下API的格式是否正确。下面是我用来测试的字典。在

self.test_query_values_positive = {
    'DriverAge' : 33,
    'PickUpCity' : 'Tampa',
    'CarType' : 'luxury'
}

下面是正在讨论的单元测试:

^{pr2}$

这是我从testDBM对象调用的函数

def create_http_query(self, slots):
    base_url = 'some.api/findCar?'
    query = None
    if self.verify_age(slots['DriverAge']):
        pickup = slots['PickUpCity'].title()
        car_type = slots['CarType'].lower()
        query = '{0}city={1}&class={2}'.format(base_url, pickup, car_type)
    else:
        query = None
    return query

由此,我得到一个如下所示的类型错误:

TypeError: string indices must be integers, not str

我没看到什么?我在它下面有一个阴性测试,运行得很好,但这个没有。为什么?在

编辑:我忘了说这句话的意思是:

if self.verify_age(slots['DriverAge']):

除此之外,它似乎运行良好。在


Tags: selfnoneurlagebaseiftypequery
1条回答
网友
1楼 · 发布于 2024-10-03 09:18:41
def testQueryCreationPositive(self):
    test_query = self.testDBM.create_http_query(self.test_query_values_positive)
    self.assertEqual("some.api/findCar?city=Tampa&class=luxury",
                     self.testDBM.create_http_query(test_query))  # this line is bad

这就是你想要的:

^{pr2}$

相关问题 更多 >