我一直在努力使用正确的解决方案来操作我从解析的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'中的空格,但现在我所拥有的只是空格:<
我不明白为什么它是空白的。此外,因为没有错误,当我有点卡住。我真的很感激我在这里错过的任何建议或帮助。
答案 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, '')