こんにちは私は、ループと.jsonで検索するときにいくつかのことを理解するのに困っています。私はウェブサイトから.jsonを取得し、['body'] 'から25個のアイテムを取り出し、新しい[' body ']'で新しい.jsonページで再起動してそれらを取得したいと思います。最後に、すべてのデータを.txtファイルに送信します。 は、ここで私は、コードは私の最初のページに.jsonから25 [「体」]の値を与えたいと思う私のコードPythonでのループと.jsonの解析
import json
import requests
#Settings
user_id = 29851266
page_num= 1
#Finds user data
max_p_f = requests.get('http://someforum/users/'+str(user_id)+'/posts.json?page='+str(page_num))
json_string = max_p_f.text
obj = json.loads(json_string)
max_page = obj['meta']['max_page']
current_page = obj['meta']['page']
posts_count = obj['meta']['posts_count']
username = obj['users'][0]['username']
count = 0
start_page = 1
while page_num <= max_page:
requests.get('http://www.someforum/users/'+str(user_id)+'/posts.json?page='+str(page_num))
page_num += 1
print("Page "+str(start_page + 1)+ " complete")
for x in range(0, 25):
data = obj['posts'][x]['body']
file = open(username+"_postdata.txt", 'a')
file.write("\n =============="+str(count)+"==================\n")
file.write(data)
count += 1
file.close()
です。次に、新しい25 ['body']値を取得する2番目のページに移動します。値がテキストファイルに書き込まれるとき、最初の25個の[body]値しか表示されず、whileが完了するまで25個の値が繰り返されるので、私は問題を抱えています。
私はあなた驚いてあなたが 'requests'レスポンスを保存していないので、最初のページからデータを取得しています。それを 'obj'に保存していますか?新しい 'json'ページにアクセスできるようにするために、新しいURL(' start_page'の後のページ)のそれぞれの 'json'データにブラウザを介して手動でアクセスできますか? – davedwards
はい、新しいページにアクセスできます。それをobjに保存する。 –
あなたのコードにはいくつかのエラーがあるようです - 'obj'はどこから値を取得しますか?あなたはいつraw jsonの 'requests'によって返されたオブジェクトをdictに変換しますか? – pml