【问题标题】:How to access nested directory in python?如何访问python中的嵌套目录?
【发布时间】:2023-03-30 02:20:01
【问题描述】:

所以我有一个具有这种结构的基本目录。

movies = {
    'Mary': {
        'Big':
        {
        'Watched': 1,
        'Rating': 'G'
        }
    },
    'Frank': {
        'Cinderella':
        {
        'Watched': 1,
        'Rating': 'G'
        }
    }
}

我想遍历给定用户名的所有电影。以及在我需要时添加更多内容。那就是我会说有'玛丽'。如何列出每部电影的所有电影,以及该电影下的评分和观看次数? 如何添加新电影?

我对python有点陌生,搜索了以前的问题,但是那些字典比这个复杂得多,这就是我问的原因。

编辑:

def displaymembers():
    for key in movies:
        print("%s" % key)

到目前为止,这是我显示人物的方式,但不确定如何访问密钥内的所有电影?

【问题讨论】:

  • @RobGwynn-Jones 一些非常基本的东西:/
  • 为您编辑的帖子
  • 试试:print("%s" % movies[key])
  • 您只想打印电影名称吗?然后你可以做一个嵌套的for循环。
  • 我需要访问名称,以及他们各自的信息,以及如何为用户添加新电影,或添加新用户。

标签: python-3.x dictionary iteration


【解决方案1】:

您可以嵌套 for 循环以继续遍历内部字典。您可以使用dict.items 来获取密钥及其值。

for name, movie_dict in movies.items():
    print(name)
    for movie_name, movie_stats in movie_dict.items():
        print("{:<5}{}".format('', movie_name))
        for key, value in movie_stats.items():
            print("{:<10}{}, {}".format('', key, value))

否则,您可以仅使用键执行此操作并将其链接起来以获取每个键的值。 dict[key1][key2][keyn]

for name in movies:
    print(name)
    for movie_name in movies[name]:
        print("{:<5}{}".format('', movie_name))
        for key in movies[name][movie_name]:
            print("{:<10}{}, {}".format('', key, movies[name][movie_name][key]))

# Output
Mary
     Big
          Watched, 1
          Rating, G
Frank
     Cinderella
          Watched, 1
          Rating, G

这种方法的问题在于,您必须在整个 movies 字典中具有相同的结构,如果某些键可能没有字典值,例如 Mary 有一个列表或其他东西字典作为值,那么您将需要处理这种情况。如果您的字典将始终遵循您显示的结构,那么您不必担心它。

【讨论】:

  • 如何为给定的人添加新电影?连同它的观看值和收视值?
  • 如第二个例子所示,你可以把它串起来movies['Mary']['New Movie'] = { 'Watched': 1, 'Rating': 'G'}
  • 是的!我想到了。太感谢了! :)
猜你喜欢
  • 2016-06-07
  • 2020-09-17
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多