2015-02-07 91 views
0

我正在使用自动喜欢图片和关注人物的instagram机器人。我很难让JSON正常工作。这里是Python:Python - TypeError:字符串索引必须是整数 - Instagram机器人

 # 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

你有解决方案吗? – 2015-02-07 05:04:59

回答

1

是,tile是字符串类型,即来自tiles['present']字典的关键字。

尝试在代码中打印变量tiletype。 例如

>>> 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]