以下にリンクされているjsonのすべての "著者"エントリをリストに保存しようとしていますが、Pythonにはまったく新しいものです。誰かが親切に私を正しい方向に向けることができますか?redditからjsonの応答を正しくスクラップする方法は?
JSON:redditのスレッドをこすりしようとhttps://codebeautify.org/jsonviewer/cb0d0a91
:
import requests
import json
url ="https://www.reddit.com/r/easternshoremd/comments/72u501/going_to_be_in_the_easton_area_for_work_next_week.json"
r = requests.get(url, headers={'User-agent': 'Chrome'})
d = r.json()
scrapedids = []
for child in d['data']['children']:
scrapedids.append(child['data']['author'])
print (scrapedids)
私はsubredditへのredditのポストからURLを切り替えると、それは動作します。たとえば、私が設定した場合
url = ("https://www.reddit.com/r/easternshoremd.json")
私はこの問題が、jsonのディレクトリ/ツリー(それが何であれ)には理解できないと考えています。私は数時間吊り上げていて、何か助けに感謝しています。
エラー:
トレースバック(最新の呼び出しの最後):Dでの子供のための で ファイル "/home/usr/PycharmProjects/untitled/delete.py"、ライン14、[ 'データ'] ['children']: TypeError:リストインデックスは、strではなく整数またはスライスでなければなりません
'd'はリスト、' d ['data'] 'はリストです。 dを作成した場所の下にprint(d)を追加してからprint(d ['data'])を実行すると、どのファイルが見つかるかを知ることができます。 – jmetz
jsonを見ると、ベースjsonオブジェクトがリストであることがわかります。「データ」は最初のエントリにあります。したがって、あなたは[0] betwen childと['data']を追加することができます。 – MegaIng