需要帮助制作字典

时间:2014-03-07 17:34:02

标签: python list object dictionary

我仍然是蟒蛇新手,并试图教自己,同时打算制作一个FIFA 14 autobuyer。我一直在使用已经制作的图书馆https://github.com/Fire30/Fifa14Client

我正在尝试做的是根据搜索特定卡时获得的信息制作字典

用于搜索卡的函数位于WebAppFunctioner.py文件中,并且是

def search(self, type="player", lev="gold", pos="CAM", num=1, team="101059",
               macr="", micr="", minb="", nat="", maxb="",
               playStyle="", leag="", start=50, cat="",
               definitionId="", maskedDefId=""):
        the_url = self.TRANSFER_URL % (self.platform_string,type, lev, pos, num, team,      macr, micr, minb, nat, maxb,
                                       playStyle, leag, start, cat, definitionId, maskedDefId)
        r = requests.post(the_url, headers=self.get_headers('GET'))
        try:
            json = r.json()
        except:
            raise BadRequestException("Could not complete search. No JSON object could be decoded")
        if 'auctionInfo' in  json:
            card_list = json['auctionInfo']
            return [Card.Card(card_dict) for card_dict in card_list]
        elif 'code' in json:
            raise FUTErrorCodeException("Could not get complete search.",json)

当我调用函数print(func.search())时,它会生成一个对象列表并打印终端中的每个对象。每个对象都有一堆信息,我试图获取所有信息并将其存储为字典。我认为Card.py正是我所需要的,除非我真的不懂如何使用它。

1 个答案:

答案 0 :(得分:0)

如果请求实际上有效,则该函数应返回卡片词典列表。

return [Card.Card(card_dict) for card_dict in card_list]list comprehension,它会为auctionInfo json中的每张卡返回card_dict的一个或多个结果(可能是返回值是一个dict对象)。

你不应该期待一本字典,而是一本字典列表。如果有一些唯一标识符,您可以编辑代码

    if 'auctionInfo' in  json:
        card_list = json['auctionInfo']
        return {some_unique_id: Card.Card(card_dict) for card_dict in card_list}

编辑:我在some_unique_id k:v对中有花括号,这会破坏它。

替代方案:将该功能保持原样并在另一侧处理它,并快速理解如下:

{card.unique_id_thing:card for card in search()}