将元组列表放入一个用逗号分隔的元组中,以导出到SQL中



我正在通过API进行点击和循环,以将各种数据收集到一个名为data的变量中。如果我做print(data),我会得到以下内容:

('1111', 11, 'Test1', '2020-16-09', '123')
('2222', 22, 'Test2', '2020-16-09', '234')
('3333', 33, 'Test3', '2020-16-09', '345')

当我做print(type(data))时,我得到以下内容:

<class 'tuple'>
<class 'tuple'>
<class 'tuple'>

我需要将这些元组放入一个元组中,每个元组用逗号分隔,看起来像下面这样。

( 
('1111', 11, 'Test1', '2020-16-09', '123'),
('2222', 22, 'Test2', '2020-16-09', '234'),
('3333', 33, 'Test3', '2020-16-09', '345') 
)

这允许我使用cursor.executemany将数据导出到SQL中

假设您有一个函数api(x),它为您返回输入x的元组,并且您知道需要查询的所有x,它来自列表X=[x1, x2, ...],然后您可以通过以下方式获得元组的元组

tuple_of_tuples = tuple(api(x) for x in X)

但在cursor.executemany()的情况下,许多数据库库接受可迭代作为输入,在这种情况下,您可以使用生成器,这可以节省保存所有元组的内存:

generator_of_tuples = (api(x) for x in X)

感谢大家的帮助,在做了更多的挖掘之后,这就是我如何获得所需数据的方法。

jsondata = (multiple tuples) #my data from looping an API
if b == 0: #b is my loop through the API
finaldata = (jsondata,)
else:
finaldata = (jsondata,) + finaldata

最新更新