从 AutotaskAPI 解析 PickList 值

Parsing PickList values from AutotaskAPI

我正在尝试将我从 AutotaskAPI 查询中获得的数字值与匹配该数字的选项列表表匹配到文字中的实际定义。使用以下代码片段:

for entity in entities:
    for key, value in enumerate(self.queueCode["PicklistValues"]["PickListValue"][0]["Value"]):
        print value

return 系统中的所有工单及其数值,但 for key, value in enumerate(self.queueCode["PicklistValues"]["PickListValue"][0]["Value"]) 是我用来获取选项列表值的。所以这个印刷品会 return "30098742" from:

(PickListValue){
   Value = "30098742"
   Label = "BF Onsite"
   IsDefaultValue = False
   SortOrder = 44
   parentValue = None
   IsActive = True
   IsSystem = False

如何获取所有选项列表值和相应的标签?

更新:

以下代码将执行我想要的获取 Value 的数字值的操作,但是,我没有遍历所有 Picklists,所以在我的前任中,[0] 不会[0]、[1]、[2] 等,这将为我提供所有选项列表的值。

for key, value in enumerate(self.queueCode["PicklistValues"]["PickListValue"][0]["Value"]):
         print value

由于字典中的 "Value" 条目是数字的字符串表示形式,因此当您 enumerate 它时,您实际上只是在遍历字符串中的字符。您示例中的 enumerate 对象将为您提供每个字符和字符的索引,如下所示:

>>> list(enumerate("30098742"))
[(0, '3'), (1, '0'), (2, '0'), (3, '9'), (4, '8'), (5, '7'), (6, '4'), (7, '2')]

如果您想要的第一个 PickList 是 self.queueCode["PicklistValues"]["PickListValue"][0],那么您可能需要枚举 PickList 的基础列表,而不是明确地获取它;类似于:

for idx, plist in enumerate(self.queueCode["PicklistValues"]["PickListValue"]):
    print "PickList with index {} has value {} and label {}".format(
        idx, plist["Value"], plist["Label"]
    )

顺便说一句,我不建议写 for key, value in enumerate(sequence) 因为 "key" 实际上不是键,而是一个序数,用于计算您要枚举的项目。在这种情况下,它对应于一个索引,所以我可能会在循环中使用 iidx 这样的名称。