目前我正在尝试从API检索JSON数据并将其存储在数据库中。我能够以列表的形式检索JSON数据,并且能够连接并查询DB2数据库。我的问题是我无法弄清楚如何为从API检索的数据生成INSERT语句。该应用程序仅供短期个人使用,因此SQL注入攻击不是问题。所以总的来说我需要从列表中生成一个sql insert语句。我的当前代码如下,api url和info已更改。
import ibm_db
import requests
ibm_db_conn = ibm_db.connect("DATABASE=node1;HOSTNAME=100.100.100.100;PORT=50000;PROTOCOL=TCPIP;UID=username;PWD=password;", "", "")
api_request = requests.get("http://api-url/resource?api_key=123456",
auth=('user@api.com', 'password'))
api_code = api_request.status_code
api_data = api_request.json()
print(api_code)
print(api_data)
答案 0 :(得分:0)
取决于返回的Json的格式,以及您的表格的样子。不过,我的第一个想法是使用Python的json模块:
import json
#...
#...
api_data = json.loads(api_request.json())
现在,您可以像平常一样访问Python对象:
api_data["key"][2]
例如。您可以进行迭代,切片或执行其他任何操作来提取所需的数据。假设您的json表示要插入的行:
query = "INSERT INTO <table> VALUES\n"
i = 0
for row in api_data:
query += "(%s)" %([i for i in row])
if i < len(api_data)-1: query += ",\n"
i += 1
同样,这将根据您的表格和JSON的不同而有很大差异,但这是我开始时的一般想法。