Có vấn đề dường như là phổ biến nhưng tôi đã thực hiện nghiên cứu của mình và không thấy nó được tái tạo chính xác ở bất cứ đâu. Khi tôi in json.loads(rety.text)
, tôi thấy đầu ra tôi cần. Tuy nhiên, khi tôi gọi lại, nó cho tôi thấy lỗi này. Bất kỳ ý tưởng? Trợ giúp được đánh giá cao và cảm ơn bạn. Tôi đang sử dụng Flask MethodHandler
.Python Flask, TypeError: đối tượng 'dict' không được gọi là
class MHandler(MethodView):
def get(self):
handle = ''
tweetnum = 100
consumer_token = ''
consumer_secret = ''
access_token = '-'
access_secret = ''
auth = tweepy.OAuthHandler(consumer_token,consumer_secret)
auth.set_access_token(access_token,access_secret)
api = tweepy.API(auth)
statuses = api.user_timeline(screen_name=handle,
count= tweetnum,
include_rts=False)
pi_content_items_array = map(convert_status_to_pi_content_item, statuses)
pi_content_items = { 'contentItems' : pi_content_items_array }
saveFile = open("static/public/text/en.txt",'a')
for s in pi_content_items_array:
stat = s['content'].encode('utf-8')
print stat
trat = ''.join(i for i in stat if ord(i)<128)
print trat
saveFile.write(trat.encode('utf-8')+'\n'+'\n')
try:
contentFile = open("static/public/text/en.txt", "r")
fr = contentFile.read()
except Exception as e:
print "ERROR: couldn't read text file: %s" % e
finally:
contentFile.close()
return lookup.get_template("newin.html").render(content=fr)
def post(self):
try:
contentFile = open("static/public/text/en.txt", "r")
fd = contentFile.read()
except Exception as e:
print "ERROR: couldn't read text file: %s" % e
finally:
contentFile.close()
rety = requests.post('https://gateway.watsonplatform.net/personality-insights/api/v2/profile',
auth=('---', ''),
headers = {"content-type": "text/plain"},
data=fd
)
print json.loads(rety.text)
return json.loads(rety.text)
user_view = MHandler.as_view('user_api')
app.add_url_rule('/results2', view_func=user_view, methods=['GET',])
app.add_url_rule('/results2', view_func=user_view, methods=['POST',])
Đây là Traceback (Hãy kết quả óc đang in trên):
Traceback (most recent call last):
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py", line 1478, in full_dispatch_request
response = self.make_response(rv)
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py", line 1577, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "/Users/RZB/anaconda/lib/python2.7/site-packages/werkzeug/wrappers.py", line 841, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "/Users/RZB/anaconda/lib/python2.7/site-packages/werkzeug/test.py", line 867, in run_wsgi_app
app_rv = app(environ, start_response)
Cảm ơn bạn davidism, điều này dường như giảm thiểu lỗi. Tuy nhiên, bây giờ tôi nhận được một lỗi mới mà tôi nhận ra có thể không liên quan đến câu hỏi ban đầu. Có ý tưởng nào ở đây không? {u'code ': 400, u'error': đầu vào JSON không hợp lệ ở dòng 1, cột 2 '} 127.0.0.1 - - [02/Dec/2015 23:39:34] "POST/results2 HTTP/1.1 "200 - – puhtiprince
@puhtiprince là json từ yêu cầu của bạn, nó nói rằng bạn đã không làm cho nó đúng. Bạn cần chuyển 'json =' để đăng, chứ không phải là 'data ='. – davidism