2

このスクリプトは、Reddit の特定のコメントから情報を取得します。与えられたパーマリンクに応じて、機能するかどうかが決まります。

import praw
from pprint import pprint
clipboard = ['permalink']
com = r.get_submission(clipboard).comments[0]
pprint(vars(com))

このパーマリンクは動作します: http://www.reddit.com/r/redditgetsDrawing/comments/1tvjmr/i_got_a_new_job_recently_and_would_love_to_have/cec9wh4

これはそうではありません:

?context=3 で終わるパーマリンクやその他の異常な終わりには、.get_submission を台無しにする特定の特性があると感じています。

エラーレポートは次のとおりです。

Traceback (most recent call last):
  File "C:\Users\Aymeric\Python33\Scripts\brdg\brdg.py", line 14, in <module>
    com = r.get_submission(clipboard).comments[0]
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\__init__.py", line 875, in get_submission
    comment_sort=comment_sort)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\decorators.py", line 320, in wrapped
    return function(cls, *args, **kwargs)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\objects.py", line 837, in from_url
    s_info, c_info = reddit_session.request_json(url, params=params)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\decorators.py", line 158, in wrapped
    return_value = function(reddit_session, *args, **kwargs)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\__init__.py", line 476, in request_json
    response = self._request(url, params, data)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\__init__.py", line 338, in _request
    cache_key = (normalize_url(request.url), tuple(key_items))
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\helpers.py", line 140, in normalize_url
    if url.endswith('.json'):
AttributeError: 'list' object has no attribute 'endswith'

編集:リストを文字列に変更すると、次のようになります。

Traceback (most recent call last):
  File "C:\Users\Aymeric\Python33\lib\json\decoder.py", line 368, in raw_decode
    obj, end = self.scan_once(s, idx)
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Aymeric\Python33\Scripts\brdg\brdg.py", line 14, in <module>
    com = r.get_submission(clipboard).comments[0]
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\__init__.py", line 875, in get_submission
    comment_sort=comment_sort)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\decorators.py", line 320, in wrapped
    return function(cls, *args, **kwargs)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\objects.py", line 837, in from_url
    s_info, c_info = reddit_session.request_json(url, params=params)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\decorators.py", line 158, in wrapped
    return_value = function(reddit_session, *args, **kwargs)
  File "C:\Users\Aymeric\Python33\lib\site-packages\praw\__init__.py", line 483, in request_json
    data = json.loads(response, object_hook=hook)
  File "C:\Users\Aymeric\Python33\lib\json\__init__.py", line 332, in loads
    return cls(**kw).decode(s)
  File "C:\Users\Aymeric\Python33\lib\json\decoder.py", line 352, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\Aymeric\Python33\lib\json\decoder.py", line 370, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

Edit2: ?context=3を削除してリストを文字列に変更すると、機能するようになりました。どうやら、とにかくリストとして機能したことはなく(私の悪い記憶がそこに入りました!)、?context=3が問題のようです。

4

1 に答える 1