初学者:在Python中打印字典中的特定键?

时间:2017-10-27 03:27:49

标签: python dictionary

我正在进行初学者的设置,并且必须使用以下词典打印句子:

ast = {
    "number":6,"message":"success","people":
    [{"name":"Sergey Ryazanskiy","craft":"ISS"},{"name":"Randy Bresnik",
    "craft":"ISS"}, {"name":"Paolo Nespoli","craft":"ISS"}, {"name" : 
    "Alexander Misurkin","craft":"ISS"},{"name":"Mark Vande Hei","craft":"ISS"}
    ,{"name":"Joe Acaba","craft":"ISS"}]}

所以我不得不说:

  1. Sergey Ryanzanskiy

    • ISS
  2. Randy Bresnik

    • ISS
  3. 没有要点(抱歉,格式化),我不知道如何引用这些键。此外,我必须创建一个句子,总结可用的不同工艺品的数量,但只有一个,所以我不知道如何创建一些东西来适应不同的名称。

    请帮忙!

4 个答案:

答案 0 :(得分:1)

在python 3中,使用dictionary.items()返回键值对的迭代器。你可以像这样打印它们。

for key, value in d.items():
        print(key, value)

您也可以直接打印出来:

for i in d:
    print (i, d[i])

您可以根据需要添加编号和格式

编辑:如上所述,您可以使用列表推导。你可以做点什么

print_list = [(k,v) for k,v in d.items()]
for i in print_list:
    print (i, print_list[i]

这将打印键/值元组的编号列表。

答案 1 :(得分:0)

好的,我这样做是为了打印这些名字,但是我现在仍然遇到一个问题,即如果现在只有一个,我们还要弄清楚如何计算不同类型的飞行器。

为ast [“people”]中的人:     print(person [“name”],“\ n”,person [“craft”],“\ n”)

答案 2 :(得分:0)

  

当现在只有一种时,我仍然无法弄清楚如何计算不同类型的飞行器。

l = []
for p in ast['people']:
   if p['craft'] not in l:
      l.append(p['craft'])

然后这个数字是len(l)

答案 3 :(得分:0)

我做了以下代码。它使用熊猫

import pandas as pd

ast = {
    "number":6,"message":"success","people":
    [{"name":"Sergey Ryazanskiy","craft":"ISS"},{"name":"Randy Bresnik",
    "craft":"ISS"}, {"name":"Paolo Nespoli","craft":"ISS"}, {"name" :
    "Alexander Misurkin","craft":"ISS"},{"name":"Mark Vande Hei","craft":"ISS"}
    ,{"name":"Joe Acaba","craft":"ISS"}
    , {"name": "Erick Salas", "craft": "SSI"}]}

my_dataframe = pd.DataFrame(ast['people'])

print('People:')
print(my_dataframe[['name','craft']].to_string())
my_sum = my_dataframe['craft'].value_counts()
print('Count of crafts')
print(my_sum.to_string())


    People:
                 name craft
0   Sergey Ryazanskiy   ISS
1       Randy Bresnik   ISS
2       Paolo Nespoli   ISS
3  Alexander Misurkin   ISS
4      Mark Vande Hei   ISS
5           Joe Acaba   ISS
6         Erick Salas   SSI
Count of crafts
ISS    6
SSI    1