繁体   English   中英

Python-Tweepy正则表达式

[英]Python - Tweepy Regex

我正在使用Tweepy流媒体为某些标签收集一些推文,在本例中为#python。 脚本的拖缆部分工作正常,但是我正在努力从输出中提取信息。

Tweepy示例:{“ created_at”:“周五8月5日17:27:00 +0000”,“ id”:761614496666361857,“ id_str”:“ 761614496666361857”,“ text”: “对virtualenv使用不同的Python版本#py thon #virtualenv #virtualenvwrapper https://t.co/ecedKrCX0L“ ,”源“:

从示例中,我想提取并打印粗体文本,但是似乎无法正常工作。 到目前为止,我已经提出了:

class MyListener(StreamListener):
        def on_data(self, data):
                try:
                        pattern = re.compile(r'"text":"(.*?)","')
                        for line in data:
                                        x = pattern.search(data)
                                        f = open('tmp', 'a')
                                        f.write(data)
                                        f.close
                                        return True
                        else:
                                pass

                except BaseException as e:
                        print("Error on_data: %s" % str(e))
                        return True

但是,这不会提取我想要的细节,而是继续打印完整的扭曲输出。

任何援助将不胜感激!

谢谢

如果要提取文本,最简便的方法是使用json模块。

import json
class MyListener(StreamListener):

    def on_data(self, data):
            try:
                    json.loads(data)
                    f = open('tmp', 'a')
                    f.write(data["text"])
                    f.close()
            except BaseException as e:
                    print("Error on_data: %s" % str(e))
                    return True

但是,如果您想使用正则表达式,则将是以下代码:

class MyListener(StreamListener):
    def on_data(self, data):
            try:
                    pattern = re.compile(r'"text":"([^",]*)","')
                    for line in data:
                                    x = pattern.search(data)
                                    f = open('tmp', 'a')
                                    f.write(data)
                                    f.close
                                    return True
                    else:
                            pass

            except BaseException as e:
                    print("Error on_data: %s" % str(e))
                    return True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM