最近在做項(xiàng)目中遇到了一些問(wèn)題,需要將從API獲取到的JSON數(shù)據(jù)寫入到MySQL數(shù)據(jù)庫(kù)中。在網(wǎng)上查找相關(guān)資料后,決定采用Python中的MySQLdb庫(kù)來(lái)實(shí)現(xiàn)。下面是我的實(shí)現(xiàn)過(guò)程與一些注意事項(xiàng)。
import MySQLdb import json # 數(shù)據(jù)庫(kù)連接信息 host = 'localhost' user = 'root' password = 'xxxxxx' database = 'my_database' # 連接數(shù)據(jù)庫(kù) db = MySQLdb.connect(host, user, password, database, charset='utf8') cursor = db.cursor() # 讀取JSON文件 with open('data.json', 'r') as f: data = json.load(f)['data'] # 循環(huán)寫入數(shù)據(jù)庫(kù) for item in data: sql = "INSERT INTO my_table (id, name, age) VALUES ('%s', '%s', %d)" % (item['id'], item['name'], item['age']) cursor.execute(sql) db.commit() # 關(guān)閉連接 db.close()
在上面的代碼中,我們首先定義了MySQL數(shù)據(jù)庫(kù)連接的相關(guān)信息,然后使用MySQLdb庫(kù)連接數(shù)據(jù)庫(kù)。接著,我們使用Python內(nèi)置的json庫(kù)讀取JSON文件,然后循環(huán)遍歷數(shù)據(jù)并寫入到指定的表格中。注意要使用db.commit()來(lái)提交操作,否則你的寫入操作將不會(huì)生效。
另外,在處理JSON數(shù)據(jù)時(shí),需要注意以下幾點(diǎn):
- 插入的字段類型需要與表格中定義的類型相符合。
- 空值是null而不是None。
- 字符串需要加上引號(hào)。
- 日期類型需要使用datetime格式。
總之,JSON數(shù)據(jù)與MySQL數(shù)據(jù)庫(kù)的結(jié)合可以實(shí)現(xiàn)很多有趣的功能。只要我們對(duì)JSON格式和MySQL語(yǔ)法足夠熟悉,就能應(yīng)對(duì)各種場(chǎng)景的需求。