【问题标题】:issues accessing my array variable outside my for loop in python (it only is accessing the last known value)在python中的for循环之外访问我的数组变量的问题(它只是访问最后一个已知值)
【发布时间】:2020-01-06 21:28:19
【问题描述】:

我有一个 python 脚本,可以获取 youtube 频道的播放列表列表。 然后我提取该频道中的播放列表 ID。 我创建了一个全局数组变量来存储频道中的播放列表 ID。

这是我的代码:

import urllib
import ast
import os

from io import StringIO
import json
import pprint
import ast


url = "https://www.googleapis.com/youtube/v3/playlists?part=snippet&channelId=UC_ANPr8IkWibKlKhmi_-H1g&key=<my YT API key>"
playlist_array = []
videos_array = []

response = urllib.urlopen(url)
#data = ast.literal_eval(json.dumps(response))
data = json.loads(response.read())

print data
pprint.pprint(data['items'])

for item in data['items']:
    print(
        "Title: {}\nid: {}\nurl: {}\n".format(item['snippet']['title'], item['id'], item['snippet']['thumbnails']['default']['url']))

for item in data['items']:
    playlist_id = (json.dumps(item['id'])).strip('"')
    playlist_array = [playlist_id]
    print playlist_array[-1]

print playlist_array[-1]

# now iterate list of playlists to extract the videos in each playlist
##### TO DO Code right here #########

当我运行代码时,当我在 for 循环中打印变量 inside 时,我可以看到频道的所有播放列表 ID。当我在 for 循环 outside 打印数组变量的列表值时(我需要在 for 循环之外访问它,以便获取该特定播放列表的视频 ID)。

Pycharm 的输出: PLejO9z7yhQOxjONeDVWaAy3kX3tEcImCR PLejO9z7yhQOwt7OKSMVLdAe4jeYDpZNJC PLejO9z7yhQOzJ068ZMLd0Zub_FOrGJ82y PLejO9z7yhQOx8ZrJYJ3o5zckygwvtUb1R PLejO9z7yhQOxx6XqB6DLvQd0-IDpb299H PLejO9z7yhQOxx6XqB6DLvQd0-IDpb299H

如何使我的脚本可以全局访问数组变量?

谢谢。

进程以退出代码 0 结束

【问题讨论】:

  • 请注意,您使用的不是数组,而是 lists。在任何情况下,您都会在每次迭代中为playlist_array = [playlist_id] 分配一个新列表,其中包含一个元素,因此当然,循环中只有最后一个元素。您需要使用.append。坦率地说,这是非常基本的。

标签: python arrays scope


【解决方案1】:

首先,一般来说,你不应该使用全局变量。

也就是说,正如@juanpa.arrivillaga 所提到的,playlist_array = [playlist_id] 不会在您的列表中添加任何内容 - 它只是创建一个新列表。

你想要的行是:

playlist_array.append(playlist_id).

【讨论】:

  • 谢谢。这个答案更简洁,并提供了我需要的所有细节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 2012-06-17
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
  • 2021-05-30
相关资源
最近更新 更多