在python循环中嵌套效率如何?

时间:2017-11-07 00:53:14

标签: python json facebook while-loop

我正在尝试将评论列表返回给Facebook帖子。在某些情况下,评论本身也有回复,这些回复位于JSON中的嵌套列表中,我将其视为“commentraw”。我不想只返回JSON所在的原始数据和格式,因为在某些情况下我会进行转换或重组。我认为评论和回复的数据格式是相同的,但回复并不总是出现。无论如何,要做到这一点,我已经提出了这个功能:

def get_post_comments(commentraw, graphsession):
    graph=graphsession
    commentlist=[]
    i=0

    while(i<len(commentraw['data'])):
        entry={'id': commentraw['data'][i]['id'], 'created_time': convert_date(commentraw['data'][i]['created_time']), 'message': commentraw['data'][i]['message']}
        replyraw=graph.get_connections(id=commentraw['data'][i]['id'], connection_name='comments', summary=True)
        if replyraw['data']:#if theres replies to the comment on the post, do a nested while (yuck) to also grab and format the replies - this is probably insanely inefficient
            y=0
            replylist=[]
            while(y<len(replyraw['data'])):
                subentry={'created_time': convert_date(replyraw['data'][y]['created_time']), 'id': replyraw['data'][y]['id'], 'message': replyraw['data'][y]['message'], 'from': replyraw['data'][y]['from']}
                replylist.append(subentry)
                y=y+1
            entry['replies']=replylist
        commentlist.append(entry)
        i=i+1

    return commentlist

所以基本上因为这是一个带有N个注释或回复列表的JSON输入,我使用while循环并递增以确保迭代列表中的所有项目。但是,因为对注释的回复嵌入在JSON中,所以我必须在while循环中嵌入一个while循环来迭代所有潜在的数据。

Facebook可能拥有大量数据。我的解决方案效率有多低(即循环时嵌套)?我怀疑这里可能会有递归,但我是一名新手Python编码器。

0 个答案:

没有答案