我正在使用来自虚拟 JSON 站点的假 JSON 数据,如下所示:
[
{
"postId": 1,
"id": 1,
"name": "id labore ex et quam laborum",
"email": "Eliseo@gardner.biz",
"body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora quo necessitatibus\ndolor quam autem quasi\nreiciendis et nam sapiente accusantium"
},
{
"postId": 1,
"id": 2,
"name": "quo vero reiciendis velit similique earum",
"email": "Jayne_Kuhic@sydney.com",
"body": "est natus enim nihil est dolore omnis voluptatem numquam\net omnis occaecati quod ullam at\nvoluptatem error expedita pariatur\nnihil sint nostrum voluptatem reiciendis et"
}
]
我通过库读取 API 数据,requests
然后转身将其发送到 Exasol DB 表中。请参阅下面的代码
import requests
import pyexasol
def get_api_data():
r = requests.get("http://jsonplaceholder.typicode.com/comments")
data = r.json()
return data
def connection():
session = pyexasol.connect_local_config('my_exasol')
return session
def send_api_data():
s = connection()
data = get_api_data()
for row in data:
s.execute("""INSERT INTO TESTBED.TEST_API(postId, id, name, email, body) VALUES ({postId}, {id},{name},
{email}, {body})""", {'postId': row['postId'], 'id': row['id'], 'name': row['name'], 'email': row['email'],
'body': row['body']})
send_api_data()
这工作正常,问题是它非常慢。插入 500 条记录大约需要 2 分钟。我知道必须有一种更有效的方法来做到这一点。实际上,我将从一个包含数千条记录的 API 中提取数据,我希望将这些记录转过来并发送到数据库表中。
关于采取更好方法的任何想法?