我有以下代码将 JSON 数据插入 SQLite 数据库:
# POST request here
if request.headers['Content-Type'] == 'application/json':
db = get_db()
db.execute('insert into places (lat, long, address, name) values (?, ?, ?, ?)', [request.data[0], request.data[1], request.data[2], request.data[3]])
db.commit()
并检索该数据:
# GET request here
if request.method == 'GET':
db = get_db()
cur = db.execute('select * from places order by id')
entries = [dict(id=row[0], lat=row[1], long=row[2], address=row[3], name=row[4]) for row in cur.fetchall()]
return repr(entries)
和我get_db()
上面使用的方法:
def get_db():
op = _app_ctx_stack.top
if not hasattr(top, 'sqlite_db'):
top.sqlite_db = sqlite3.connect(app.config['DATABASE'])
return top.sqlite_db
这是我正在执行的示例 cURL 请求:
curl -H "Content-type: application/json" -X POST http://127.0.0.1:5000/location -d '{'lat':5, 'long':10, 'address':'street', 'name':'work'}'
当尝试执行GET
如下操作时:curl -X GET http://127.0.0.1:5000/location
,我得到:
[{'lat': u'{', 'address': u'a', 'id': 1, 'long': u'l', 'name': u't'}]
我相信这是一个编码问题。关于我应该如何存储数据以避免这种情况的任何建议?这里的问题到底是什么?
谢谢!