2016-11-07 90 views
1

我想從StachExchange API使用POST發送數據。我不確定似乎是什麼問題。我檢查了腳本,當我嘗試以其他方式發佈數據時,它工作正常。這個問題似乎與python腳本有關。該腳本從API獲取數據,但似乎並不被髮布到「generate.php」不過這裏的代碼:無法在Python中使用POST發送數據

#!/usr/bin/env python 
import requests, json 

userinput = input('Enter a keyword: ') 
userinputq = input('Enter page: ') 

getparams = {'page':userinputq, 'pagesize':'100', 'order':'desc', 'sort':'votes', 'intitle':userinput, 'site':'stackoverflow', 'filter': '!5-HwXhXgkSnzI0yfp0WqsC_-6BehEi(fRTZ7eg'} 

r = requests.get('https://api.stackexchange.com/2.2/search', params=getparams) 

result = json.loads(r.text) 

if result['has_more'] == False: 
print("Error given.") 
else: 
for looping in result['items']: 

    if looping['is_answered'] == True: 
     try: 
      newparams = {'order':'desc', 'sort':'votes', 'site':'stackoverflow', 'filter': '!4(Yrwr)RRK6oy2JSD'} 
      newr = requests.get('https://api.stackexchange.com/2.2/answers/'+str(looping['accepted_answer_id']), params=newparams) 
      newresult = json.loads(newr.text) 
      titletopost = 'Title:', looping['title'] 
      bodytopost = '<h1>Question:</h1><br>'+(looping['body'])+'<br>'+'Link to Question: '+(looping['link'])+'<br><br><br>'+'<h1>Answer:</h1><br>'+(newresult['items'][0]['body']) 
      enterremove = bodytopost.replace('\n', '').replace('\r', '') 
      print(enterremove) 
      userdata = {"secret":"Secret", "topic_title":titletopost, "body":enterremove} 
      requests.post("http://www.example.com/generate.php", data=userdata) 
     except KeyError: print("No answer ID found.")   

print("") 
print("") 

誰能請解釋這個問題?

+1

您可能想要在第一個if語句的print()上修正縮進 –

+0

它也表示請求不存在 –

+0

是的,謝謝,修正!什麼要求?導入庫?您可以使用以下命令安裝它:pip安裝請求 – user41992

回答

1

沒關係! python腳本沒有問題。其實我忘了在測試時忘記將「$ _GET」改爲「$ _POST」'generate.php'。

+1

哈哈代碼看起來對我來說確實很好:D很高興它是固定的 –