ValueError: too many values to unpack (expected 2) when passing values from dictionary

ValueError: too many values to unpack (expected 2) when passing values from dictionary

我有一个 video_apps.json 文件,其中包含一个包含两个字符串列表的字典。

{ 
    "PROJECTS": {
        "A": [
            ["Csole/Viewer", "Csole/Viewer/Inc/Revision.h"],
            ["Csole/FPedal", "Csole/FPedal/Inc/Revision.h"]
        ],
        "B": [
            ["Hand/Label", "Hand/Label/Inc/Revision.h"],
            ["CSole/FController", "Csole/FController/Inc/Revision.h"]
        ]
    }
}

我在 builder.py 文件中创建了以下代码块来格式化 video_apps.json 文件,以便我可以将值存储在 PList.

        s_path = self._conf_dict["PATHS"]["LOCAL_IFORM_DIR"] + "/Fware/"
        self._fi_apps_list = []
        man_list = []

        for target, apps in self._fi_apps_dict["PROJECTS"].items():
            for app in apps:
                self._fi_apps_list.append(app[0])
                man_list.append(s_path + app[0] + "/Inc/Revision.h")
  
        PList = self._fi_apps_list, man_list
        create_table(PList)

如果我没记错的话,PList 目前的格式是:tuple[list, list]

我希望 PList 包含这样的值:

PList = [("CSole/Viewer", "/home/user.com/src/iform/Fware/CSole/Viewer/Inc/Revision.h"),
               ("CSole/FPedal", "/home/user.com/src/iform/Fware/CSole/FPedal/Inc/Revision.h"),   
               ("Hand/Label", "/home/user.com/src/iform/Fware/Hand/Label/Inc/Revision.h"),
               ("Csole/FController", "/home/user.com/src/iform/Fware/Csole/FController/Inc/Revision.h")
                  ]

当 运行 代码块时出现以下错误:

Traceback (most recent call last):
  File "build_fi.py", line 55, in <module>
    beta.test_function("config.json")
  File "/home/user.com/src/iform/dvops/build_iform_web/src/builder.py", line 178, in test_function
    create_table(ProjectList)
  File "/home/user.com/src/iform/dvops/build_iform_web/src/manifest.py", line 77, in create_table
    for (projectName, revisionHeaderPath) in PList:
ValueError: too many values to unpack (expected 2)
>>> stop/remove/kill container

为了提供一些上下文,代码块中的 self._conf_dict["PATHS"]["LOCAL_IFORM_DIR"] + "/Fware/" 正在获取用户的路径。

如有任何建议,我们将不胜感激。谢谢你的帮助。

您正在制作 PList 列表元组。你想要一个元组列表。为此使用 zip()

PList = list(zip(self._fi_apps_list, man_list))