用于写入云数据库的Python格式API数据

2024-06-16 10:22:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手。我使用在Github上的SDK中找到的API调用成功地从基于web的数据库中提取数据。数据恢复得很好。我需要格式化它,这样我就可以把它写回AWS MySQL数据库。在

步骤1-API查询:

下面是我用来获取API数据的Python代码:

from infusionsoft.library import Infusionsoft
infusionsoft = Infusionsoft('APPNAME', 'API-SECRET-KEY')
table = 'Contact'
returnFields = ['Id', 'FirstName', 'LastName', 'Email', 'Leadsource']
query = {'FirstName' : 'John'}
limit = 5
page = 0
rawdata = infusionsoft.DataService('query', table, limit, page, query, returnFields)
print rawdata

返回如下所示的数据集:

[{'LastName':'Marden','Leadsource':'Phillips','Email':'xxxxxxx@xxxxxxx.com“,'FirstName':'John','Id':602},{'LastName':'Macfleckno','Leadsource':'Old Leads','Email':'xxxxxxx@xxxxxxx.com','FirstName':'John','Id':722},{'LastName':'Donoghue','Leadsource':'Phillips','Email':'xxxxxxx@xxxxxxx.com','名字':'约翰','Id':952},{'LastName':'Ostman','Leadsource':'Phillips','Email':'xxxxxxx@xxxxxxx.com“,'FirstName':'John','Id':1046},{'LastName':'Tassi','Leadsource':'Classifieds','Email':'xxxxxxx@xxxxxxx.com','名字':'约翰','Id':1070}]

第2步-写入数据库:

我有以下代码可以连接到我的数据库并将这个虚拟数据写入表:

^{pr2}$

这显然只是我在一个教程中找到的示例代码,但与数据库的连接正在工作,表正在创建,数据正在写入。在

那么,如何遍历API调用返回的数据集并将其解析为适合写入DB表的列和行呢?在

谢谢你


Tags: 数据代码comapiid数据库emailfirstname
1条回答
网友
1楼 · 发布于 2024-06-16 10:22:10

从API返回的rawdata是一个包含5个dict的JSON列表。Python内置了对遍历JSON对象的支持,也就是说,您甚至不需要导入JSON。

python中的标准for loop允许您迭代列表。对于列表中的每个dict,您可以按名称访问所有键/值对(例如writerObj[“FirstName”])。

from pprint import pprint
rawdata = [{'LastName': 'Marden', 'Leadsource': 'Phillips', 'Email': 'xxxxxxx@xxxxxxx.com', 'FirstName': 'John', 'Id': 602}, {'LastName': 'Macfleckno', 'Leadsource': 'Old Leads', 'Email': 'xxxxxxx@xxxxxxx.com', 'FirstName': 'John', 'Id': 722}, {'LastName': 'Donoghue', 'Leadsource': 'Phillips', 'Email': 'xxxxxxx@xxxxxxx.com', 'FirstName': 'John', 'Id': 952}, {'LastName': 'Ostman', 'Leadsource': 'Phillips', 'Email': 'xxxxxxx@xxxxxxx.com', 'FirstName': 'John', 'Id': 1046}, {'LastName': 'Tassi', 'Leadsource': 'Classifieds', 'Email': 'xxxxxxx@xxxxxxx.com', 'FirstName': 'John', 'Id': 1070}]
for writerObj in rawdata:
#    pprint(writerObj)
#    cur.execute("INSERT INTO Writers(Name) VALUES('" + writerObj["FirstName"] + ' ' + writerObj["LastName"] + "')")
    pprint("INSERT INTO Writers(Name) VALUES('" + writerObj["FirstName"] + ' ' + writerObj["LastName"] + "')")

pprint库只是将文本打印到屏幕上。“被注释掉的行”当前执行(…”是您将在与数据库接口的代码中调用的内容。

相关问题 更多 >