让python for循环只进行一次

时间:2016-08-31 14:33:26

标签: python facebook

好吧,所以我试图在这里制作一个Facebook机器人为我做一些事情,但我并不认为这对你很重要。

无论如何,为了实现我想做的事情,我需要做一些事情。因此,使用Facebook API我会收到一些帖子ID,其中包含以下代码:

for posts in parsed_json:
    post_id = posts.get('id')
    post_url = "http://facebook.com/" + str(post_id)
    text_save(post_url)

但问题是这段代码让我获得了最后25个帖子ID,我只需要最后一个。 因此,我试图做的是:获取最后一个帖子ID,然后用它执行text_save()函数。

但是这个循环让我得到了25个ID,而我并不需要它们。我只需要第一个。

那么如何限制for循环只运行一次?我尝试了以下的事情:

a = 0
while a < 1:
    for posts in parsed_json:
        post_id = posts.get('id')
        post_url = "http://facebook.com/" + str(post_id)
        text_save(post_url)
        a = a + 1

但这并没有真正成功,它仍然经历了25次。任何想法?

2 个答案:

答案 0 :(得分:3)

要获取最后一个值(或第一个),只需使用"http://facebook.com/" + str(parsed_json[-1].get('id'))(或parsed_json [0])

如果你想使用循环, 只保存最后一个值,然后迭代并运行命令:

post_url = ''
for posts in parsed_json:
    post_id = posts.get('id')
    post_url = "http://facebook.com/" + str(post_id)
text_save(post_url)

在使用一次交互后断开循环:

a = 0
for posts in parsed_json:
    if a >= 1: break
    post_id = posts.get('id')
    post_url = "http://facebook.com/" + str(post_id)
    text_save(post_url)
    a += 1

答案 1 :(得分:0)

如果你只需要一次迭代,那么这里基本上不需要循环。

但考虑到您需要测试某些功能,break 语句可以终止循环。

a = 0
while a < 1:
    for posts in parsed_json:
        post_id = posts.get('id')
        post_url = "http://facebook.com/" + str(post_id)
        text_save(post_url)
        a = a + 1
        break
    break