我有一个Decimal('3.9')对象的一部分,并希望将其编码为一个看起来像的JSON字符串{'x': 3.9}.我不关心客户端的精度,所以浮动很好.
是否有一种很好的方法来序列化这个?JSONDecoder不接受Decimal对象,并且事先转换为float会产生{'x': 3.8999999999999999}错误,并且会大大浪费带宽.
我正在尝试实现REST API,其中一部分是将数据格式化为json.我能够从mysql数据库中检索数据,但是我收到的对象并不是我所期望的.这是我的代码
from flask import Flask
from flask.ext.mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = '127.0.0.1'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'hello_db'
mysql = MySQL(app)
@app.route('/hello')
def index():
cur = mysql.connection.cursor()
cur.execute('''SELECT * FROM Users WHERE id=1''')
rv = cur.fetchall()
return str(rv)
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
结果:
((1L, u'my_username', u'my_password'),)
Run Code Online (Sandbox Code Playgroud)
我如何实现返回这样的json格式:
{
"id":1,
"username":"my_username",
"password":"my_password"
}
Run Code Online (Sandbox Code Playgroud)