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



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

[
{
'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

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

PS:我不能替代太多格式来自更大的字典

假设你不想做任何花哨的事情,比如以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(。

如果您打算存储文件,也许可以看看在jsonhttps://www.w3schools.com/js/js_json_intro.asp 或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)) 

最新更新