我试图通过pyhton将json数据发布到mysql中:

UPDATE:

@app.route('/gmradd', methods=['POST'])
def add():
    if request.method == 'POST':
        req_json = request.get_json(force=True)
        g.cursor.execute('INSERT INTO gmr (version,visitorId,dwellTime,poiId,srId,zoneId,poiProximityConfidence,zoneProximityConfidence,poiPresenceConfidence,zonePresenceConfidence,normalizedTime) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)',
        (req_json[0]['version'], req_json[0]['visitorId'],req_json[0]['dwellTime'],req_json[0]['poiId'],req_json[0]['srId'],req_json[0]['zoneId'],req_json[0]['poiProximityConfidence'],req_json[0]['zoneProximityConfidence'],req_json[0]['poiPresenceConfidence'],req_json[0]['zonePresenceConfidence'],req_json[0]['normalizedTime']))

        g.conn.commit()
        resp = Response('Updated', status=201, mimetype='application/json')
        return resp
    else:
        return """<html><body>
        Something went horribly wrong
        </body></html>"""

我在休息客户端应用程序中发布了2条json数据记录,如下所示:

[
{
"dwellTime": "0",
"normalizedTime": "1489574977000",
"poiId": "poi3",
"poiPresenceConfidence": "15",
"poiProximityConfidence": "1",
"srId": "sr3",
"version": "3",
"visitorId": "V123",
"zoneId": "Security",
"zonePresenceConfidence": "40",
"zoneProximityConfidence": "20"
},
{
"dwellTime": "0",
"normalizedTime": "1489574977000",
"poiId": "poi3",
"poiPresenceConfidence": "15",
"poiProximityConfidence": "1",
"srId": "sr3",
"version": "3",
"visitorId": "V123",
"zoneId": "Security",
"zonePresenceConfidence": "40",
"zoneProximityConfidence": "20"
},
]

只有第一个值被保存!

尝试使用executemany()并用{0}','{1}'替换%s,...喜欢:

g.cursor.executemany("INSERT INTO gmr (version,visitorId,dwellTime,poiId,srId,zoneId,poiProximityConfidence,zoneProximityConfidence,poiPresenceConfidence,zonePresenceConfidence,normalizedTime) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')",
                         (req_json[0]['version'], req_json[0]['visitorId'], req_json[0]['dwellTime'], req_json[0]['poiId'], req_json[0]['srId'], req_json[0]['zoneId'], req_json[0]['poiProximityConfidence'], req_json[0]['zoneProximityConfidence'], req_json[0]['poiPresenceConfidence'], req_json[0]['zonePresenceConfidence'], req_json[0]['normalizedTime']))

Without using '{0}','{1} and if i use %s, %s,..

我得到:TypeError:没有足够的格式字符串参数

回溯(最近一次调用最后一次):文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,1997行,在调用返回self.wsgi_app(environ,start_response) )文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,第1985行,在wsgi_app response = self.handle_exception(e)文件“/ root / python-mysql /venv/lib/python2.7/site-packages/flask/app.py“,第1540行,在handle_exception中重新加载(exc_type,exc_value,tb)文件”/root/python-mysql/venv/lib/python2.7/ site-packages / flask / app.py“,第1982行,在wsgi_app response = self.full_dispatch_request()文件”/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py“ ,第1614行,在full_dispatch_request中rv = self.handle_user_exception(e)文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,第1517行,在handle_user_exception中重新加载(exc_type ,exc_value,tb)文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,第1612行,在full_dispatch_request中rv = self.dispatch_reques t()文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,第1598行,在dispatch_request中返回self.view_functionsrule.endpoint文件“/ root / python-mysql /venv/py_gmr.py“,第56行,添加(req_json [0] ['版本'],req_json [0] ['visitorId'],req_json [0] ['dwellTime'],req_json [0] [' poiId'],req_json [0] ['srId'],req_json [0] ['zoneId'],req_json [0] ['poiProximityConfidence'],req_json [0] ['zoneProximityConfidence'],req_json [0] [' poiPresenceConfidence'],req_json [0] ['zonePresenceConfidence'],req_json [0] ['normalizedTime']))文件“/root/python-mysql/venv/lib/python2.7/site-packages/MySQLdb/cursors . py“,第281行,在executemany self._get_db() . 编码中)文件”/root/python-mysql/venv/lib/python2.7/site-packages/MySQLdb/cursors.py“,第297行,在_do_execute_many v中= values%escape(next(args),conn)TypeError:格式字符串的参数不足

With '{0}','{1} :

追溯是:

回溯(最近一次调用最后一次):文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,1997行,在调用返回self.wsgi_app(environ,start_response) )文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,第1985行,在wsgi_app response = self.handle_exception(e)文件“/ root / python-mysql /venv/lib/python2.7/site-packages/flask/app.py“,第1540行,在handle_exception中重新加载(exc_type,exc_value,tb)文件”/root/python-mysql/venv/lib/python2.7/ site-packages / flask / app.py“,第1982行,在wsgi_app response = self.full_dispatch_request()文件”/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py“ ,第1614行,在full_dispatch_request中rv = self.handle_user_exception(e)文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,第1517行,在handle_user_exception中重新加载(exc_type ,exc_value,tb)文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,第1612行,在full_dispatch_request中rv = self.dispatch_reques t()文件“/root/python-mysql/venv/lib/python2.7/site-packages/flask/app.py”,第1598行,在dispatch_request中返回self.view_functionsrule.endpoint文件“/ root / python-mysql /venv/py_gmr.py“,第56行,添加(req_json [0] ['版本'],req_json [0] ['visitorId'],req_json [0] ['dwellTime'],req_json [0] [' poiId'],req_json [0] ['srId'],req_json [0] ['zoneId'],req_json [0] ['poiProximityConfidence'],req_json [0] ['zoneProximityConfidence'],req_json [0] [' poiPresenceConfidence'],req_json [0] ['zonePresenceConfidence'],req_json [0] ['normalizedTime']))文件“/root/python-mysql/venv/lib/python2.7/site-packages/MySQLdb/cursors . py“,第283行,在executemany self.rowcount = sum(args中的arg的self.execute(query,arg))文件”/root/python-mysql/venv/lib/python2.7/site-packages/MySQLdb/ cursors.py“,第283行,在self.rowcount = sum(args中的arg的self.execute(query,arg))文件”/root/python-mysql/venv/lib/python2.7/site-packages/MySQLdb /cursors.py“,第240行,执行self.errorhandler(self,ProgrammingError,s tr(m))文件“/root/python-mysql/venv/lib/python2.7/site-packages/MySQLdb/connections.py”,第52行,在defaulterrorhandler中引发errorclass(errorvalue)ProgrammingError:并非所有参数都在转换期间字符串格式