Python,Pyodbc-将行编码为json

Python,Pyodbc-将行编码为json,python,tornado,pyodbc,Python,Tornado,Pyodbc,您好,我应该开发一个处理程序,在AJAX从web请求时返回数据库中json编码的管理员列表。使用Pyodbc并假设表列是AdminGuid、ID和Name,我应该如何更正#错误部分以使其正常工作 谢谢 *错误消息 class GetAdminAsJsonHandler(BaseHandler): def post(self): admin_guid = self.get_argument("admin_guid") if admin_guid == Non

您好,我应该开发一个处理程序,在AJAX从web请求时返回数据库中json编码的管理员列表。使用Pyodbc并假设表列是AdminGuid、ID和Name,我应该如何更正#错误部分以使其正常工作

谢谢

*错误消息

class GetAdminAsJsonHandler(BaseHandler):
    def post(self):
        admin_guid = self.get_argument("admin_guid")
        if admin_guid == None:
            self.write("AdminGuid is missing.")
        else:
            database = self.connect_db()
            cursor = database.cursor()
            admins = cursor.execute("SELECT * FROM Admin").fetchall()
            self.disconnect_db()
            self.write(json_encode(admins)) # Error
[E 141021 02:22:47 web:1407]未捕获的异常POST/admin/get(::1)
HTTPServerRequest(protocol='http',host='localhost:8000',method='POST',uri='/admin/get',version='http/1.1',remote_ip='::1',标头={'Origin':'http://localhost:8000“,”内容长度“:”12“,”接受语言“:”ko KR,ko;q=0.8,en-US;q=0.6,en;q=0.4“,”接受编码“:”gzip,deflate“,”主机“:”localhost:8000“,”接受“:”*/*”,“用户代理“:”Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/38.0.2125.104 Safari/537.36,“连接”:“保持活动状态”,“X-Requested-With”:“XMLHttpRequest”,“Referer”:http://localhost:8000/admin“,”Cookie“:”csrftoken=NUV1oVLBJ3jzzvuNio9Dv22k8qTt5TYW;安装“\u 421aa90e079fa326b6494f812ad13e79=bqgjn14u6t5sn3th0ccdnj6pr7”,”内容类型“:”应用程序/x-www-form-urlencoded;字符集=UTF-8“)
回溯(最近一次呼叫最后一次):
文件“C:\Python27\lib\site packages\tornado\web.py”,第1332行,在\u execute中
结果=方法(*self.path_参数,**self.path_参数)
文件“C:\Users\SANG-MIN\Desktop\haundae\module\admin\handlers.py”,第34行,在post中
admin_数组=[a代表admin中的r]={}
文件“C:\Python27\lib\site packages\tornado\escape.py”,第88行,json_编码
返回json.dumps(value).replace(“


这就是我想要的。希望它能帮助其他遇到同样问题的人。

错误消息是什么?向我们展示整个回溯消息。添加了错误消息。TypeError:('admin'、'admin'、'\xc3\xd6\xb0\xed\xbf\xee\xbf\xb5\xc1\xf8',True,True,1)不是JSON可序列化的。我猜它的格式不适合转换为JSON
[E 141021 02:22:47 web:1407] Uncaught exception POST /admin/get (::1)
    HTTPServerRequest(protocol='http', host='localhost:8000', method='POST', uri='/admin/get', version='HTTP/1.1', remote_ip='::1', headers={'Origin': 'http://localhost:8000', 'Content-Length': '12', 'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4', 'Accept-Encoding': 'gzip,deflate', 'Host': 'localhost:8000', 'Accept': '*/*', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36', 'Connection': 'keep-alive', 'X-Requested-With': 'XMLHttpRequest', 'Referer': 'http://localhost:8000/admin', 'Cookie': 'csrftoken=NUV1oVLBJ3jzzvuNio9Dv22k8qTt5TYW; install_421aa90e079fa326b6494f812ad13e79=bqgjn14u6t5sn3th0ccdnj6pr7', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'})
    Traceback (most recent call last):
      File "C:\Python27\lib\site-packages\tornado\web.py", line 1332, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "C:\Users\SANG MIN\Desktop\haundae\module\admin\handlers.py", line 34, in post
        admin_array = [a for r in admin] = {}
      File "C:\Python27\lib\site-packages\tornado\escape.py", line 88, in json_encode
        return json.dumps(value).replace("</", "<\\/")
      File "C:\Python27\lib\json\__init__.py", line 243, in dumps
        return _default_encoder.encode(obj)
      File "C:\Python27\lib\json\encoder.py", line 207, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "C:\Python27\lib\json\encoder.py", line 270, in iterencode
        return _iterencode(o, 0)
      File "C:\Python27\lib\json\encoder.py", line 184, in default
        raise TypeError(repr(o) + " is not JSON serializable")
    TypeError: ('admin', 'admin', '\xc3\xd6\xb0\xed\xbf\xee\xbf\xb5\xc1\xf8', True, True, 1) is not JSON serializable
[E 141021 02:22:47 web:1811] 500 POST /admin/get (::1) 1233.00ms