将Python关键字作为参数传递?

时间:2015-11-28 19:17:32

标签: python twitter

我目前正在开发一个使用Twitter Streaming API的Python脚本。

问题在于,当我调用stream.user()它要求stream.user(with=followings)之类的参数时,但是Python检测到'with'作为关键字并给我一个语法错误。有没有办法绕过这个?

更新

以下是Twitter文档:https://dev.twitter.com/streaming/userstreams#Data_from_accounts_the_user_follows,如果我想从用户关注的帐户中获取推文,则说我需要使用'with = followings'。

更新2:

以下是代码:

from twython import Twython, TwythonStreamer

class Streamer(TwythonStreamer):

    def on_success(self, data):

        if 'text' in data:
            user  = '@' + data['user']['screen_name']
            tweet = ': ' + data['text']

    def on_error(self, status_code, data):
        print status_code
        self.disconnect()

stream = Streamer('XXX',
                'XXX',
                'XXX',
                'XXX')

stream.user(with=followings)

2 个答案:

答案 0 :(得分:0)

编辑: 看https://github.com/ryanmcgrath/twython/blob/00d9d6a7666267bc305a2ceccb642ef79a1555c7/twython/streaming/types.py

链接到:https://dev.twitter.com/streaming/reference/get/user

def user(self, **params):

注意双星**

  

如果表单*标识符存在,则将其初始化为元组   接收任何多余的位置参数,默认为空   元组。如果表单**标识符存在,则将其初始化为新的   字典接收任何多余的关键字参数,默认为新的   空词典。

试试这个:

params = {'with' : 'followings'}

stream.user(**params)

"与"确实是python中的关键字

>>> import keyword
>>> keyword.iskeyword('with')
True

答案 1 :(得分:0)

它没有在您的问题中指定,但我认为您想要收听特定用户的所有推文。在这种情况下,您可以通过以下方式使用tweepy流式传输:

F2 = SUBSTITUTE(E:E," ","*")
G2 = VLOOKUP(E:E,A:B,2,0)
H2 = COUNTIF(A:A,F:F)
I2 = VLOOKUP(F:F,A:B,2,0)
J2 = IFERROR(G2,IF(H2=1,I2,IF(H2=0,"Never seen before","Need validation")))

您可以在here

中阅读更多内容