【发布时间】:2012-02-22 21:38:27
【问题描述】:
我正在尝试将 sqlalchemy 查询的结果(列表)序列化为 json。
这是类:
class Wikilink(Base):
__tablename__='Wikilinks'
__table_args__={'extend_existing':True}
id = Column(Integer,autoincrement=True,primary_key=True)
title = Column(Unicode(350))
user_ip = Column(String(50))
page = Column(String(20))
revision = Column(String(20))
timestamp = Column(String(50))
我想我的问题出在__repr__(self): 函数上。
我试过类似的东西:
return '{{0}:{"title":{1}, "Ip":{2}, "page":{3} ,"revision":{4}}}'.format(self.id,self.title.encode('utf-8'),self.user_ip,self.page,self.revision)
或:
return '{"id"={0}, "title"={1}, "Ip"={2}}'.format(self.id,self.title.encode('utf-8'),self.user_ip.encode('utf-8'),self.page,self.revision)
我得到了:
TypeError(repr(o) + " is not JSON serializable")
ValueError: Single '}' encountered in format string
我试过了:
return '{id=%d, title=%s, Ip=%s}'%(self.id,self.title.encode('utf-8'),self.user_ip.encode('utf-8'))
我得到了:
TypeError: {id=8126, title=1 בדצמבר, Ip=147.237.70.106} is not JSON serializable
像这样添加“”(根据 JSON 格式):"id"="%d", "title"="%s", "Ip"="%s" 也没有帮助。
我知道这应该很简单,但我就是做不到
实际上瓶子正在自动处理 jsonification 部分,但尝试在结果上调用 json.dumps 会给我同样的错误。
【问题讨论】:
标签: python json sqlalchemy