在Json函数中传递List

时间:2014-01-24 03:59:08

标签: python list function

我一直在努力使用正确的解决方案来操作我从解析的Json对象获取的字符串。

我想创建一个要从字符串中排除的单词列表。我在下面将此列表命名为“忽略”。我没有得到错误,但它并没有真正做我想要的。

以下是我的代码:

def extract_info(msg):
    created_time = msg['created_time'].replace('T', ' ').replace('+0000', '')
    ignore = ["you","all","has","can","that", "the"]
    message = msg.get('message', 'Key "message" is not present.').replace('\n', '').replace(',', '').encode('utf8') 
    for ignore in message:
        if ignore in message:
            message = message.replace(ignore, '')
    user_id = msg['from']['id']
    return (created_time, message, user_id)



def main():
    ts = FacebookSearch()
    data = ts.search('dishwasher')
    js = json.loads(data)
    messages = (extract_info(msg) for msg in js.get('data', []))
    write_csv('fb_dishwasher.csv', messages, append=True)

上述代码的问题在于它不会向它创建的.csv文件写入任何内容。这只是一片空白。

我希望'ignore'列表中的任何单词都带有'message'中的空格,但现在我所拥有的只是空格:<

我不明白为什么它是空白的。此外,因为没有错误,当我有点卡住。我真的很感激我在这里错过的任何建议或帮助。

1 个答案:

答案 0 :(得分:0)

您将ignore定义为列表,然后尝试在for循环中重复使用它,这可能会弄乱一切。此外,您不想迭代字符串!

请尝试做:

ignore = ["you","all","has","can","that", "the"]
    message = msg.get('message', 'Key "message" is not present.').replace('\n', '').replace(',', '').encode('utf8') 
    for word in message.split():
        if word in ignore:
            message = message.replace(word, '')