使用动态字典列出,分别显示键和值(使用变量)

2024-05-23 15:20:16 发布

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

我想展示一个不断变化的字典的键和值,现在我通过算法看到了它没有的东西。它只适用于第一项

[
  {
    'author name': 'Amy Berke',
    'author link': None
  },
  {
    'author name': 'Robert Bleil',
    'author link': None
  },
  {
    'author name': 'Jordan Cofer',
    'author link': None
  },
  {
    'author name': 'Doug Davis',
    'author link': None
  }
]

此代码仅由第一作者提供

Dictionary = [{'author name': 'Amy Berke', 'author link': None}, {'author name': 'Robert Bleil', 'author link': None}, {'author name': 'Jordan Cofer ',' author link ': None}, {' author name ':' Doug Davis', 'author link': None}]
keysInternas = dictionary [0] .keys ()
index = 0
for keyInterna in keysInternas:
  internalValue = dictionary [index] [internalInternal]
  print (internalInternal, ":", internalValue)
  index + = 1

有时我会

[
  {
    'author name': 'Amy Berke'
  },
  {
    'author name': 'Robert Bleil'
  },
  {
    'author name': 'Jordan Cofer'
  }
]

或者也

[
   {
     'author name': 'Amy Berke',
     'author link': None,
     'image link': None
   },
   {
     'author name': 'Robert Bleil'
     'author link': None,
     'image link': None,
   }
]

但代码只是介绍了我

author name: Amy Berke
author link: None

对于我目前拥有的代码,只有第一个元素向我说明了为什么它在任何情况下对我都没有用处。我想展示每个元素的键和值

附言:我不能改变太多的格式来自一个更大的字典


Tags: 代码namenoneindex字典linkrobertauthor
2条回答

假设您不想做任何花哨的事情,比如以jsonyaml格式存储作者(尽管我强烈建议这样做)

如果您想按原样使用词典并显示每个值,并确保在每个项目中获取每个新值(假设您不想深入到信息的另一个层次),您可以尝试以下方法:

a = [
  {
    'author name': 'Amy Berke'
  },
  {
    'author name': 'Robert Bleil'
  },
  {
    'author name': 'Jordan Cofer'
  }
]

b = [
   {
     'author name': 'Amy Berke',
     'author link': None,
     'image link': None,
   },
   {
     'author name': 'Robert Bleil',
     'author link': None,
     'image link': None, 
    }
    ]

for author_package in a:
    for key in author_package:
        print(f'{key}: {author_package[key]}')

for author_package in b:
    for key in author_package:
        print(f'{key}: {author_package[key]}')

这将为您提供以下输出:

author name: Amy Berke
author name: Robert Bleil
author name: Jordan Cofer

author name: Amy Berke
author link: None
image link: None
author name: Robert Bleil
author link: None
image link: None

这是因为您可以抓取字典中的每个项(作为iterable),然后抓取包含刚才抓取的键的每个键(同样是iterable

如果您打算存储文件,可以考虑将内容存储在json{a1}或yaml中

希望这有帮助

首先,您传递的数据不是字典,而是列表。要单独打印每个作者,必须循环浏览作者列表(字典)。然后你循环浏览作者的细节。如果您想打印出每个字段的键和值,那么最好是调用items方法,它返回一个元组键和值列表(例如:[(key1, value1), (key2, value2), ...])。每个项都将是一个元组。然后使用print函数打印出格式化字符串。format方法会排除多个参数,因此需要分别传递项的每个元素,但可以使用*运算符来解压缩项(这意味着将每个元素作为单独的参数传递)

this_is_not_a_dictionary_but_a_list = [{'author name': 'Amy Berke', 'author link': None}, {'author name': 'Robert Bleil', 'author link': None}, {'author name': 'Jordan Cofer ',' author link ': None}, {' author name ':' Doug Davis', 'author link': None}]
for dictionary in this_is_not_a_dictionary_but_a_list:
    for item in dictionary.items():
        print('{}: {}'.format(*item)) 

相关问题 更多 >