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'}'
次のように a を実行しようとすると、GET
次のようcurl -X GET http://127.0.0.1:5000/location
になります。
[{'lat': u'{', 'address': u'a', 'id': 1, 'long': u'l', 'name': u't'}]
それはエンコーディングの問題だと思います。これを回避するためにデータを保存する方法について何かアドバイスはありますか? ここでの問題は正確には何ですか?
ありがとう!