API ValueError: длина значений не соответствует длине индекса - PullRequest
0 голосов
/ 02 июля 2018

Я пишу код на python для извлечения информации, такой как количество отзывов, цена, рейтинг и т. Д. Из API yelp. Но я получаю ошибку значения

def get_business_id(business):
    #import pdb; pdb.set_trace()
    try:
        business_id = search_matches(API_KEY, business)

        b_id = business_id['businesses'][0]['id']
    except:
        b_id = 'None'
    return b_id


df=pd.read_csv("ABC_sample10.csv", encoding='cp1252')
df['zip_code']=df['zip_code'].apply(str)

df1 = df.to_dict(orient='record') 

length = len(df1)
input_range = list(range(0, length)) 

def id_loop(df1):
    empty = []
    for i in input_range:
        business_id = get_business_id(df1[i])
        empty.append(business_id)
    return empty

a = id_loop(df1)


def get_details(business_id):
    empty_claimed = []
    empty_review = []
    empty_rating = []
    empty_price = []
    for i in input_range:
        business_detail = get_business(API_KEY,business_id[i])
        try:
            claimed_ind1 = business_detail['is_claimed']
            review_count_ind1 = business_detail['review_count']
            rated_ind1 = business_detail['rating']
            priced_ind1 = business_detail['price']
        except:
            claimed_ind1 = 'None'
            review_count_ind1 = 'None'
            rated_ind1 = 'None'
            priced_ind1 ='None'
        empty_claimed.append(claimed_ind1)
        empty_review.append(review_count_ind1)
        empty_review.append(rated_ind1)
        empty_review.append(priced_ind1)

    return empty_claimed, empty_review,empty_rating,empty_price 

b = get_details(a)



df['yelp_id']=a
df['claimed']=b[0]
df['review_count']=b[1]
df['rating']=b[2]
df['price']=b[3]
df.to_csv('sample10_ABCOutput8.csv')

Я получаю ошибку:

Traceback (последний последний вызов):

Файл "", строка 179, в DF [ 'REVIEW_COUNT'] = B [1]

Файл "C: \ Users \ rthuria \ AppData \ Local \ Continuum \ miniconda3 \ envs \ PythonData \ Lib \ сайт-пакеты \ панды \ ядро ​​\ frame.py", строка 3116, в setitem self._set_item (ключ, значение)

Файл "C: \ Users \ rthuria \ AppData \ Local \ Continuum \ miniconda3 \ envs \ PythonData \ Lib \ сайт-пакеты \ панды \ ядро ​​\ frame.py", строка 3191, в _set_item значение = self._sanitize_column (ключ, значение)

Файл "C: \ Users \ rthuria \ AppData \ Local \ Continuum \ miniconda3 \ envs \ PythonData \ Lib \ сайт-пакеты \ панды \ ядро ​​\ frame.py", строка 3388, в _sanitize_column значение = _sanitize_index (значение, self.index, copy = False)

Файл "C: \ Users \ rthuria \ AppData \ Local \ Continuum \ miniconda3 \ envs \ PythonData \ Lib \ сайт-пакеты \ панды \ ядро ​​\ series.py", строка 3998, в _sanitize_index повысить ValueError (длина значений не соответствует длине индекса)

ValueError: длина значений не соответствует длине индекса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...