python – 错误列表索引必须是整数或切片,而不是str
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 错误列表索引必须是整数或切片,而不是str,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1182字,纯文字阅读大概需要2分钟。
内容图文
![python – 错误列表索引必须是整数或切片,而不是str](/upload/InfoBanner/zyjiaocheng/782/9bb2d4aaa3514c39b71390b5296b802f.jpg)
根据标题,帮我解决错误.
我试图打印countryCode基于country_name,它位于’rv’变量中.
country_found是国家/地区列表中具有相同值的数据列表,
然后我尝试检索countryCode,我得到了错误
rv = "Indonesia"
country_lower = rv.lower()
countries = {
"DATA": {
"data": [{
"countryId": "26",
"countryCode": "AU",
"name": "Australia"
}, {
"countryId": "17",
"countryCode": "ID",
"name": "Indonesia"
}]
}
}
def take_first(predicate, iterable):
for element in iterable:
if predicate(element):
yield element
break
country_found = list(
take_first(
lambda e: e['name'].lower() == country_lower,
countries['DATA']['data']
)
)
default_country_code = 'US'
country_code = (
country_found['countryCode']
if country_found
else default_country_code
)
print (country_code)
解决方法:
country_found是一个列表,但您尝试通过字符串索引获取项目:
country_found['countryCode']
你可能想要获得匹配的第一个结果:
country_code = country_found[0]['countryCode'] if country_found else default_country_code
但是,你真的需要将结果作为列表,如果你只使用next()会怎么样:
result = take_first(lambda e: e['name'].lower() == country_lower,
countries['DATA']['data'])
try:
country_code = next(result)['countryCode']
except StopIteration:
country_code = default_country_code
内容总结
以上是互联网集市为您收集整理的python – 错误列表索引必须是整数或切片,而不是str全部内容,希望文章能够帮你解决python – 错误列表索引必须是整数或切片,而不是str所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。