在python脚本中使用Ajax中的数据

我正在尝试使用Python脚本用从Ajax POST接收的数据填充PostgreSQL表。

我的Ajax命令是:

function ajaxFct() { $.ajax({ async: true, type: "POST", url: "/myDir/cgi-bin/send_array.py", data: my_array, dataType: "html", success : function(data) { document.getElementById("ajaxAnchor").innerHTML = "Exported something to DB table" } }); } 

my_array看起来像一个有多行的csv字符串,例如:

[“header1,header2,header3”,“some_value,45.99,text”]

我只是想不通如何在我的python脚本中使用这个数组(send_array.py)

现在,脚本可以正常使用本地定义的一些数据(参见第二个cursor.execute命令):

 import psycopg2 import psycopg2.extras import cgitb def main(): cgitb.enable() conn_string = "host='...' dbname='...' user='...' password='...' port=..." conn = psycopg2.connect(conn_string) cursor = conn.cursor() cursor.execute("DROP TABLE IF EXISTS myDb.myTable; CREATE TABLE myDb.myTable(id serial PRIMARY KEY, header1 varchar, header2 decimal, header3 varchar);") cursor.execute("INSERT INTO myDb.myTable (header1, header2, header3) VALUES (%s, %s, %s)", ("local_test1",0.12345,"local_test2")) # Make the changes to the database persistent conn.commit() cursor.close() conn.close() if __name__ == "__main__": main() 

所以我的问题基本上是:

我如何访问从Ajax POST发送的数据,即my_array数组,用于SQL查询而不是本地定义的数据?

感谢您的帮助,我对此仍然很陌生,并且无法在线找到答案。

我终于找到了一种从Python脚本中获取Ajax命令数据的方法。 首先,我必须对浏览器发送的数据进行字符串化:

 data: JSON.stringify(myArray), 

然后,我在python脚本的以下命令中使用sys.stdin将发送的数据存储在局部变量中:

 myDataInPython = json.load(sys.stdin)