首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python 3中通过引用更新嵌套键的值

在python 3中通过引用更新嵌套键的值
EN

Stack Overflow用户
提问于 2019-05-24 02:01:49
回答 1查看 45关注 0票数 -1

我有一本字典:

代码语言:javascript
复制
  watch_list=  {'videos': [{'systemId': 'qre', 'duration': 19}, {'systemId': 'abc', 'duration': 19}]}

现在,我想检查字典中是否已经存在该持续时间,如果存在,则通过systemId更新systemId。

因此,我尝试使用以下代码:

代码语言:javascript
复制
def update_duration(watch_list,system_id,duration):
watch_history= next((a for a in watch_list if a['systemId'] == system_id), None)
if watch_history:
    watch_history['duration'] =duration
    return watch_history

但这给了我一个错误:

代码语言:javascript
复制
*** TypeError: string indices must be integers

我是python的新手,我读过堆栈溢出的其他解决方案,但不能让它工作。有没有人能帮我一点忙,告诉我如何通过systemId更新值?

我用的是python 3和flask

EN

回答 1

Stack Overflow用户

发布于 2019-05-24 03:32:05

当您使用如下内容遍历字典时

代码语言:javascript
复制
my_dictionary = { 'hello' : ['I', 'am', 'a', 'dictionary'] }

for entry in my_dictionary:
    print entry

默认情况下,输出将是hello,因为它会遍历它的键。看起来您实际上希望遍历字典的值,因此您需要调用values()函数,或者调用Python2中的itervalues()

除此之外,您还会遇到生成器理解的if语句的问题。在这一点上,您的a变量保存了一个字典列表-曾经是watch_list['videos']找到的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56280683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档