无法通过 Python/PySimpleGUI 的多个用户输入捕获 API 数据

Unable to capture API data with multiple user inputs with Python/PySimpleGUI

我正在编写一个 python 脚本,它可以从 themoviedb.org 中提取电视剧集信息。

我有一个 for 循环,它应该收集输入到我用 PySimpleGUI 创建的 GUI InputText 字段中的所有剧集。当我输入多个剧集时,例如第 1、2、3 集,它说脚本已完成但没有任何反应。

这是设置输入字段的代码,季节和目录字段按预期工作。

layout = [[sg.Text("Hello, please select the Show, Season, Episodes, and Directory.")]
        ,[sg.Text('Season:'), sg.InputText('', size=(10, 1), key='input_season')]
        ,[sg.Text('Episodes:'), sg.InputText('', size=(10, 1), key='input_episode')]
        ,[sg.Column(file_list_column)]
        ,[sg.Button("OK")]] 

这是我从这些输入字段中获取值的代码。

while True:
    event, values = window.read()
    # End program if user closes window or
    # presses the OK button

    if event == "OK" or event == sg.WIN_CLOSED:
        Season_Number = values['input_season']
        Episode_Number = values['input_episode'].split(',')
        Episode_String = str(Episode_Number)
        file_location = values['FOLDER']
        break

window.close()

最后,这是每集的循环。

episode_list = [Episode_String]
for episode in episode_list:
    text = get_data(API_key, TV_ID, Season_Number, episode)
    if text == "error":
        break
    write_file(text)

在代码中我有一些打印语句,当我打印 Episode_String 变量时它显示以下 ['1', '2'],如果我将其复制并粘贴到 [Episode_String] 在上面的代码中,脚本运行两个剧集都没有问题。

我的问题似乎是从该输入框中获取值并允许循环分别解析每个剧集。

*提交后,我想添加 API URL 的打印件,当我有多个剧集时它会被发送,这似乎是问题所在,因为这是 URL 正在发送。我已经从 URL、https://api.themoviedb.org/3/tv/114505/season/1/episode/%5B'1',%20'2'%5D?api_key=zzz&language=en-US&append_to_response=images 中删除了我的 API 密钥 似乎当前代码甚至不适用于一集,因为它将数据添加到 URL

如有任何帮助,我们将不胜感激。

如果您在字段 input_episode 中输入 1,2,则

Episode_Number = '1,2'.split(',')       # ['1', '2']     - two-string list
Episode_String = str(Episode_Number)    # "['1', '2']"   - str
episode_list = [Episode_String]         # ["['1', '2']"] - one-string list

所以你不能用[Episode_String],只能用Episode_Number

episode_list = Episode_Number

对于 print("['1', '2']"),您将得到 ['1', '2'] 的输出,它不重要,它是一个列表。