首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问嵌套字典

如何访问嵌套字典
EN

Stack Overflow用户
提问于 2021-06-10 15:35:20
回答 1查看 48关注 0票数 0

我有一个YAML文件,如下所示

代码语言:javascript
复制
Title: "COVID-19 Bulletin – Details on key guidances and press releases on COVID-19 (Vol.42 – 15Jan2021)"
Section 1:
  - Title : "What's new in this issue?"
  - Heading 2:
         Title : "North America"
         Heading 3:
           Title: "US guidances/regulations"
           Content :
             - "13-Jan-2021: COVID-19: Potency Assay Considerations for Monoclonal Antibodies and Other Therapeutic Proteins Targeting SARS-CoV-2 Infectivity"

  - Heading 2:
        Title : "Asia-Pacific"
        Heading 3:
          Title: "Canada notices/statements/press releases"
          Content:
            - "11-Jan-2021: Notice: Vaccines and Treatments for COVID-19: Progress, 11-Jan-2021"
            - "08-Jan-2021: Notice: COVID-19 Vaccine Safety-Adverse Events Following Immunization Report, 08-Jan-2021"

我需要能够访问标题3的内容。当我像这样打印它时:

代码语言:javascript
复制
print(section1[1]["Heading 2"]["Heading 3"]["Content"])

它可以很好地打印输出,但是当我在循环中打印它时,它会给出一个错误

代码语言:javascript
复制
for i in range(1, len(section1)):
    heading2 = section1[i]["Heading 2"]["Title"]

    for j in section1[i]["Heading 2"]["Heading 3"]:
        print(j["Title"])

它会给出以下错误:

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

回答 1

Stack Overflow用户

发布于 2021-06-10 21:26:45

你的内部循环:

代码语言:javascript
复制
    for j in section1[i]["Heading 2"]["Heading 3"]:
        print(j["Title"])

正在迭代“标题3”中包含的字典的键,因为“标题3”的主体是一个字典(而不是一个列表)。因此j将采用“标题3”中的键的值。因此,根据您提供的代码片段,"Title“然后是"Content”。

如果你想访问每个“标题3”的标题,你不需要循环,你只需要访问section1[i]["Heading 2"]["Heading 3"]["Title"]

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

https://stackoverflow.com/questions/67916700

复制
相关文章

相似问题

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