2016-12-25 4 views
0

私はredditbotを書き込もうとしています。私は単純なものから始めることにしました。私は、正しく処理していることを確認するためにRequestExceptionを取得しました。PRAW raise RequestException単純なボットを実行しようとしたとき

私のコード(bot.py):

import praw 

for s in praw.Reddit('bot1').subreddit("learnpython").hot(limit=5): 
    print s.title 

私praw.iniファイル:

# The URL prefix for OAuth-related requests. 
oauth_url=https://oauth.reddit.com 

# The URL prefix for regular requests. 
reddit_url=https://www.reddit.com 

# The URL prefix for short URLs. 
short_url=https://redd.it 

[bot1] 
client_id=HIDDEN 
client_secret=HIDDEN 
password=HIDDEN 
username=HIDDEN 
user_agent=ILovePythonBot0.1 

(HIDDENは実際のID、秘密、パスワードとユーザー名を置き換えところ。)

私のトレースバック:

Traceback (most recent call last): 
    File "bot.py", line 3, in <module> 
    for s in praw.Reddit('bot1').subreddit("learnpython").hot(limit=5): 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 79, in next 
    return self.__next__() 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 52, in __next__ 
    self._next_batch() 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 62, in _next_batch 
    self._listing = self._reddit.get(self.url, params=self.params) 
    File "/usr/local/lib/python2.7/dist-packages/praw/reddit.py", line 322, in get 
    data = self.request('GET', path, params=params) 
    File "/usr/local/lib/python2.7/dist-packages/praw/reddit.py", line 406, in request 
    params=params) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/sessions.py", line 131, in request 
    params=params, url=url) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/sessions.py", line 70, in _request_with_retries 
    params=params) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/rate_limit.py", line 28, in call 
    response = request_function(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/requestor.py", line 48, in request 
    raise RequestException(exc, args, kwargs) 
prawcore.exceptions.RequestException: error with request request() got an unexpected keyword argument 'json' 

何か助けていただければ幸いです。 PS、私はUbuntu 14.04でPython 2.7を使用しています。その他の情報が必要な場合は、私に尋ねてください。

+0

これはかなり奇妙です。どのバージョンのpraw、prawcore、およびrequestがありますか:PACKAGEをそれぞれの名前に置き換えて、バージョンを取得します。PACKAGEからの 'python -c 'import __version__; print(__ version __) ''私の勘には、そのパラメータをサポートしていない古いバージョンのリクエストがあるということです。ただし、pipを使用してprawをインストールすると、これは不可能です。あなたはどのようにプローをインストールしましたか? – bboe

+0

@bboe私は以下を使用しています: praw 4.1.0 prawcore 0.5.0 要求2.2.1 私はpipでprawをインストールしました。 – CoffeeTableEspresso

+0

prawcoreは 'requests> = 2.9.1'に依存するので、本当に面白いです。そうすれば、pipはそのバージョンのPRAWを正常にインストールできませんでした。 'pip install -U praw'を試して、要求バージョンをまったく変更するかどうかを確認してください。 – bboe

答えて

0

Reddit APIへのリクエストに問題があるようです。おそらくあなたのファイル内の設定でユーザーエージェントを変更しようとします。 PRAW basic configuration Optionsによれば、ユーザエージェントは、フォーマット<platform>:<app ID>:<version string> (by /u/<reddit username>)に従うべきです。何が起こるか見てみてください。

+1

私はこれを試しましたが、それは効果がありませんでした。私は同じエラーet alを得ました。 – CoffeeTableEspresso

+0

@CoffeeTableEspresso JSONパラメータはリクエストバージョン<2.4.2で導入されておらず、リクエストのバージョンは2.2.1です。 pip 'pip install requests'を使って更新してみてください。それが機能しない場合は、古い要求ライブラリと新しいものとが競合する必要があります。 – Bantu

+0

私は 'pip install requests'を試しました(上記の@bboeで提案された修正と同様)、私のリクエストのバージョンは更新されませんでした。 – CoffeeTableEspresso

関連する問題