使用Python匹配一组值中的字典值

时间:2013-11-22 22:54:59

标签: python mysql twitter sqlite

我正在从网络文件中读取1000条推文

wFD = urllib2.urlopen('http://rasinsrv07.cstcis.cti.depaul.edu/CSC455/Twitter_2013_11_12.txt')

然后用推文(created_at,id,user_id,text,source)填充表“TwTbl”。我正确填充了表格。现在我的任务是输出表值,如果推文ID不以“700”结尾。我的代码如下:

IDs = c.execute("select distinct id from TwTbl where id like '%700'").fetchall()
set_keys = set(IDs)
f = open("dicttotxt2.txt", "w")
for tweet in tweets:
    str(tweet['id'])
    if str(tweet['id']) not in set_keys:
        for key in tweet:  
            try:
                print >>f, key, ": ", tweet[str(key)]
            except:
                pass

此代码输出到文本文件,但它输出所有内容。它永远不会匹配set_keys上的ID值。 ID有65个ID的列表。 ID中的一些值是:

388453908898906100
388453908886351900

它们作为文本字段存储在TwTbl中。 有人可以指导我朝正确的方向发展吗?

1 个答案:

答案 0 :(得分:0)

没有数据库调用的东西会这样工作:

with open("dicttotxt2.txt", "w") as f:
    for tweet in tweets:
        if not str(tweet['id']).endswith('700'):
            for key in tweet:
                try: print >>f, key, ": ", tweet[str(key)]
                except: pass