【发布时间】:2015-04-02 03:07:00
【问题描述】:
这是我的测试命令:
curl -v -A 'TEST/1.0' -X POST -d 'events=[{"event":"reset", "test":"reset;123"}]' 'http://127.0.0.1:8080/_api'
这是我的请求处理程序
class MyWebhookHandler(webapp2.RequestHandler):
def post(self):
events_json = self.request.get('events')
event_datum = json.loads(events_json) # exception here
每当我到达json.loads 行时,我都会遇到这个异常:
event_datum = json.loads(events_json)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Unterminated string starting at: line 1 column 27 (char 26)
我能做些什么来阻止这个异常?
编辑
问题可能更多地与self.request.get('events') 相关,而不是 json 库。函数调用返回
[{"event":"reset", "test":"reset
代替
[{"event":"reset", "test":"reset;123"}]
【问题讨论】:
-
你能发布 json 字符串...至少前 27 个字符吗?
-
@tdelaney 你能看到有问题的 curl 命令的
-d后面的字符串吗?
标签: python json google-app-engine python-2.7 webapp2