【发布时间】:2015-03-12 07:37:23
【问题描述】:
我是 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}, {'姓氏:'Macfeckno','Leadsource':'旧线索','电子邮件':'xxxxxxx@xxxxxxx.com','名字':'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}]
第 2 步 - 写入数据库:
我的代码可以连接到我的数据库并将这些虚拟数据写入表:
import MySQLdb as mdb
con = mdb.connect(host = "HOSTNAME",user="USERNAME",passwd="PASSWORD", port=3306, db="DBNAME")
with con:
cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS Writers")
cur.execute("CREATE TABLE Writers(Id INT PRIMARY KEY AUTO_INCREMENT, \
Name VARCHAR(25))")
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")
这显然只是我在教程中找到的示例代码,但与数据库的连接正在工作,正在创建表并且正在写入数据。
那么,如何遍历 API 调用返回的数据集并将其解析为适合写入数据库表的列和行?
谢谢
【问题讨论】:
标签: python mysql-python