json資料自動生成MySQL建表語句
阿新 • • 發佈:2019-02-04
#_*_coding:utf-8_*_ #author: cike #date: 18-9-13 import pymysql.cursors connection = pymysql.connect(host='localhost', port = 3306, user='root', passwd='root', db ='jsontest', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor,) #這裡設定表名 table_name = "test12" #這裡設定需要的字典資料 dict1 = { "id": "971", "payout_id": "10602", "payin_id": "0", "pay_nums": "500.00", "pay_state": "0", "pay_time": "1536829856", "pay_no": "PAY2018091348534951", "card_id": "664", "trade_notes": "null", "trans_type": "0", "trans_img": "null", "get_moneytime": "null", "fee_nums": "100.00", "out_card": "null" } #資料插入函式 def insert1(sql): try: with connection.cursor() as cursor: cursor.execute(sql) connection.commit() print(u"建立表%s成功" %(table_name)) finally: connection.close() #根據元祖資料生成mysql語句 def make_sql(tuple2): str1 = "CREATE TABLE `%s`" %(table_name) str2 = "ENGINE=InnoDB DEFAULT CHARSET=utf8;" str4="" for i in tuple2: str3 = "`"+i+"`"+" "+"varchar(255) DEFAULT NULL," str4 = str4+str3 str5 = "("+str4.rstrip(",")+")" str6 = str1+" "+str5+str2 return str6 #把字典資料轉化為元祖資料 def tuple1(dict1): list1 = [] print(u"總欄位數:"+str(len(dict1))) for i in dict1.keys(): list1.append(i) m = tuple(list1) return m def main(): tuple2 = tuple1(dict1) sql_str = make_sql(tuple2) insert1(sql_str) if __name__ == '__main__': main()