这个python模块中是否有错误或我使用错误的方法?

时间:2015-06-21 18:49:05

标签: python python-requests bigcommerce

来自getattr的

lambda用" connection"作为关键字参数?我是在滥用代码还是有错误?

代码和追溯:https://github.com/bigcommerce/bigcommerce-api-python/issues/32

#!/usr/bin/env python2
import bigcommerce
import bigcommerce.api

BIG_URL = 'store-45eg5.mybigcommerce.com'
BIG_USER = 'henry'
BIG_KEY = '10f0f4f371f7953c4d7d7809b62463281f15c829'

api = bigcommerce.api.BigcommerceApi(host=BIG_URL, basic_auth=(BIG_USER, BIG_KEY))
def get_category_id(name):
    get_request = api.Categories.get(name)
    try:
        cat_list = api.Categories.all(name=name)
            if cat_list:
                return cat_list[0]['id']
            else:
                return None
            except:
                return None
def create_category(name):
    rp = api.Categories.create(name)
    if rp.status == 201:
        return rp.json()['id']
    else:
        return get_category_id(name)
create_category('anothertestingcat')

给出这个追溯:

Traceback (most recent call last):
File "./bigcommerceimporter.py", line 50, in 
create_category('anothertestingcat')
File "./bigcommerceimporter.py", line 44, in create_category
rp = api.Categories.create(name)
File "/home/henry/big_test_zone/local/lib/python2.7/site-packages/bigcommerce/api.py", line 57, in 
return lambda args, *kwargs: (getattr(self.resource_class, item))(args, connection=self.connection, *kwargs)
TypeError: create() got multiple values for keyword argument 'connection'

回溯引用的api.py中的行:https://github.com/bigcommerce/bigcommerce-api-python/blob/master/bigcommerce/api.py#L57

1 个答案:

答案 0 :(得分:1)

根据examples,create应该像这样使用:

api.Categories.create(name = 'anothertestingcat')

注意:您应该生成一个新的API KEY,因为您在此问题中发布了当前的一个。