Robot Framework - 类型错误:解析 Json 时字符串索引必须是整数

自动测试仪213

我正在尝试解析一组 json,但出现以下错误

TypeError: string indices must be integers

杰森:

{
    'locationId': 'location1',
    'name': 'Name',
    'type': 'Ward',
    'patientId': None,
    'children': [{
        'locationId': 'location2',
        'name': 'Name',
        'type': 'Bed',
        'patientId': None,
        'children': [{
            'locationId': 'location3',
            'name': 'Name',
            'type': 'HospitalGroup',
            'patientId': None,
            'children': None
        }]
    }, {
        'locationId': 'location4',
        'name': 'Name',
        'type': 'Hospital',
        'patientId': None,
        'children': None
    }, {
        'locationId': 'location5',
        'name': 'Name',
        'type': 'Bed',
        'patientId': None,
        'children': None
    }, {
        'locationId': 'location6',
        'name': 'Name',
        'type': 'Bed',
        'patientId': None,
        'children': None
    }, {
        'locationId': 'location27',
        'name': 'Name',
        'type': 'Bed',
        'patientId': None,
        'children': None
    }]
}

我正在尝试获取所有 locationId 值并将这些值一一存储在列表中。

这是我在做什么

    @{locationIds}=  create list
    :FOR  ${item}  IN   @{Location_Json}
    \  ${locationId}=  set variable  ${item['locationId']}
    \  log  ${locationId}
    \  append to list  ${locationIds}  '${locationId}'

我也试过这个

    @{locationIds}=  create list
    :FOR  ${item}  IN   @{Location_Json}
    \  ${locationId}=  set variable  ${item['children'][0]['locationId']}
    \  log  ${locationId}
    \  append to list  ${locationIds}  '${locationId}'

但我遇到了同样的错误。

这条线上的测试失败 ${locationId}= set variable ${item['locationId']}

任何帮助都会受到赞赏。

托多·米纳科夫

如果 var 的内容${Location_Json}确实是您上面放置的 json 示例,则可以解释异常“字符串索引必须是整数”。

您正在使用的 json 是字典(不是列表);因此,在这个循环中:

:FOR  ${item}  IN   @{Location_Json}

,价值${item}将是该键在字典中的-例如locationIdname等顶级字典。

如果您对“children” subdict 的“locationId”感兴趣,那就可以了 - 迭代“children”项:

:FOR ${item} IN @{Location_Json['children']}

在每次迭代中,${item}它将成为“children”中的子字典之一,您可以获得它的“locationId”

\    ${locationId}=  set variable  ${item['locationId']}

与您的问题无关,请不要这样做:

append to list  ${locationIds}  '${locationId}'

不要将 的值${locationId}放在单引号内 - 会发生的是这些引号现在将成为列表成员的一部分。
说,值${locationId}

location5

加上周围的引号,它最终会变成

'location5'

我不认为那是你的目标;使用这些额外的引号,这将失败:

Should Be Equal As Strings    location5      ${locationIds[3]}   # because locationIds[3] will have the extra quotes

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

python pandas - 解析 JSON 时出现类型错误:字符串索引必须是整数

类型错误:字符串索引必须是带 JSON 的整数

TypeError:使用Python解析Json时,字符串索引必须是整数错误

解析 JSON 时出现“字符串索引必须是整数”错误

类型错误:处理 json 文件时字符串索引必须是整数

类型错误:在 Python 中过滤 JSON 中的值时,字符串索引必须是整数

类型错误:字符串索引必须是整数,而不是带有 JSON 解析的 str

在Robot Framework中解析Json

TypeError:使用Python解析JSON时,字符串索引必须是整数?

解析JSON时,字符串索引必须为整数-python

字符串索引必须是整数,同时通过json解析

处理使用'http'下载的JSON时发生错误-TypeError:字符串索引必须为整数

JSON 注释错误“字符串索引必须是整数”

使用 json 数据解析错误:字符串索引必须是整数

类型错误:字符串索引必须是复杂的 json 数组中的整数

类型错误:json.loads() 之后的字符串索引必须是整数

TypeError:字符串索引必须是jSON和Flask的整数错误

Python:JSON规范化“字符串索引必须为整数”错误

json数据处理错误“字符串索引必须是整数”

类型错误:列表索引必须是整数或切片,而不是解析 json 请求时的 str

错误:字符串索引必须是整数

在Robot Framework中删除字符串的“ $ ,.”

索引整数和字符串的JSON数组时,ElasticSearch抛出映射器解析异常

类型错误:字符串索引必须是整数(Python)

Flask 中的“类型错误:字符串索引必须是整数”

/ 字符串索引处的类型错误必须是整数

类型错误:字符串索引必须是整数 django

如何修复“类型错误:字符串索引必须是整数”

字典问题(类型错误:字符串索引必须是整数)