只有一些函数可以使用twitterapi

2024-04-20 14:34:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试用twitterapi,我发现我的代码只适用于API文档中列出的一些函数,这让我有点困惑

例如:

我可以使用以下代码成功获取可用位置的列表:

from twitter import *
from datetime import datetime

OAUTH_TOKEN = 'my token'
OAUTH_SECRET = 'my secret token'
CONSUMER_KEY = 'my key'
CONSUMER_SECRET ='my secret key'

t = Twitter( auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET,
        CONSUMER_KEY, CONSUMER_SECRET) )

trends1 = t.trends.available()
print trends1

但是,如果我使用place()函数,而不是available(),它将不起作用:

from twitter import *
from datetime import datetime

OAUTH_TOKEN = 'my token'
OAUTH_SECRET = 'my secret token'
CONSUMER_KEY = 'my key'
CONSUMER_SECRET ='my secret key'

t = Twitter( auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET,
        CONSUMER_KEY, CONSUMER_SECRET) )

trends1 = t.trends.place(1)
print trends1

代码是相同的,只是我使用的是place()而不是available()。你知道吗

有人知道问题出在哪里吗?你知道吗


Tags: key代码fromimporttokendatetimesecretconsumer
1条回答
网友
1楼 · 发布于 2024-04-20 14:34:09

调用时需要使用关键字参数:

trends1 = t.trends.place(_id=1)

代理API请求的twitter.TwitterCall()对象不知道如何将位置参数转换为URL参数;它不携带从位置0的参数到查询中的参数id的映射。你知道吗

但是,id关键字是特殊的;twitter库假定它是URL的一部分;当API调用需要id=..查询参数时,应该使用_id。你知道吗

PyPI页面不能很好地呈现自述;您可能希望引用GitHub project page,因为那里的示例更具可读性。除其他外,该页提供了以下示例:

# to pass in the GET/POST parameter `id` you need to use `_id`
t.statuses.oembed(_id=1234567890)

为完整起见,反例是何时使用id;API URL ^{}变为:

t.geo.id(id='df51dec6f4ee2b2c')  # pass in `id` to extend the URL
t.geo.id.df51dec6f4ee2b2c()      # build the URL as an attribute instead

是的,这两种形式都有效,但并非所有有效的id值都是有效的Python属性名。你知道吗

相关问题 更多 >