使用请求获取数据而不是插入DB2

时间:2016-05-05 21:38:19

标签: python db2

目前我正在尝试从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)

1 个答案:

答案 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的不同而有很大差异,但这是我开始时的一般想法。