python - 在python中的for循环之外访问我的数组变量的问题(它只是访问最后一个已知值)
问题描述
我有一个 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 循环中打印变量时,我可以看到频道的所有播放列表 ID 。当我在 for 循环之外打印数组变量的列表值时(我需要在 for 循环之外访问它,以便获取该特定播放列表的视频 ID)。
Output from Pycharm: PLejO9z7yhQOxjONeDVWaAy3kX3tEcImCR PLejO9z7yhQOwt7OKSMVLdAe4jeYDpZNJC PLejO9z7yhQOzJ068ZMLd0Zub_FOrGJ82y PLejO9z7yhQOx8ZrJYJ3o5zckygwvtUb1R PLejO9z7yhQOxx6XqB6DLvQd0-IDpb299H PLejO9z7yhQOxx6XqB6DLvQd0-IDpb299H <---- this is from printing the array variable outside the for loop
如何使我的脚本可以全局访问数组变量?
谢谢。
进程以退出代码 0 结束
解决方案
首先,一般来说,你不应该使用全局变量。
也就是说,正如@juanpa.arrivillaga 提到的那样,playlist_array = [playlist_id]
它不会在您的列表中添加任何内容 - 它只是创建一个新列表。
你想要的行是:
playlist_array.append(playlist_id)
.
推荐阅读
- java - 我应该总是在业务逻辑结束时调用绝地实例的关闭吗?
- node.js - 我如何制作一个 setpresence 命令来自己触发它?
- django - Django request.user.first_name 在 Safari 中不起作用
- scala - Scala 3 TypeRepr 匹配更高种类的类型
- android - 任务“:app:dataBindingGenBaseClassesBetaDebug”执行失败
- node.js - Windows上节点的最大堆大小问题
- javascript - 当列不再隐藏时,表格样式混乱
- legend - 如何按主题对图例元素进行分组?
- javascript - React Hook (useState, setState) 是真假
- autodesk-forge - 防止在 Autodesk Forge 中平移子 3D 视图