2015-02-07 2 views
0

Я работаю над ботром instagram, который автоматически любит картинки и следует за людьми. Мне очень трудно заставить JSON работать. Вот Python:Python - TypeError: строковые индексы должны быть целыми числами - Instagram Bot

 # Make a list of users who are currently being followed, or have been followed before 
    already_followed = [] 
    for tile in tiles['present']: 
     already_followed.append(tile['user_id']) 
    for tile in tiles['past']: 
     already_followed.append(tile['user_id']) 

Это мой JSON файл:

{ 
    "present": { 
    "user": {} 
    }, 
    "past": { 
    "user": {} 
    } 
} 

И это ошибка:

File "Instagram-bot.py", line 95, in <module> 
    already_followed.append(tile['user_id']) 
TypeError: string indices must be integers 

Если вы, ребята, нужно что-нибудь еще, дайте мне знать!

+0

вы получили решение? –

ответ

1

да, tile - тип строки i.e. ключ из словаря tiles['present'].

попытаться распечатать type переменной tile в коде. , например.

>>> a = 123 
>>> type(a) 
<type 'int'> 
>>> a = "123" 
>>> type(a) 
<type 'str'> 
>>> 

Пример кода:

tiles = { 
    "present": { 
    "user": {"user_id": 123} 
    }, 
    "past": { 
    "user": {"user_id": 456} 
    } 
} 

already_followed = [] 
for tile in tiles['present']: 
    already_followed.append(tiles['present'][tile]['user_id']) 

for tile in tiles['past']: 
     already_followed.append(tiles['past'][tile]['user_id']) 


print "already_followed:-", already_followed 

выход:

[email protected]:~/Desktop/stackoverflow$ python 5.py 
already_followed:- [123, 456] 
Смежные вопросы