| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # -*- coding: utf-8 -*-
- import pymysql
- import csv
- class OfpayDataSyncer:
- def __init__(self):
- self.db_conn = None;
- self.connect_mysql();
- def connect_mysql(self):
- config = {
- 'host':'47.106.225.136',
- 'port':3306,
- 'user':'root',
- 'passwd':'sjojo123456',
- 'database':'mitmproxy',
- 'charset':'utf8'
- };
- db_conn = None;
- while True:
- try:
- db_conn = pymysql.connect(**config);
- db_conn.ping(reconnect=True);
- except pymysql.OperationalError as e:
- print(e);
- print('连接断开,正在尝试重新连接...');
- if db_conn:
- db_conn.close();
- db_conn = pymysql.connect(**config);
- time.sleep(1);
- else:
- break;
- self.db_conn = db_conn;
- def sync(self, filename='results.csv'):
- sql_query = f'''
- SELECT * FROM elife_account_data WHERE update_time >= CURDATE() AND update_time < CURDATE() + INTERVAL 1 DAY;
- ''';
- cursor = self.db_conn.cursor();
- cursor.execute(sql_query);
- results = cursor.fetchall();
- with open(filename, 'w', newline='', encoding='utf-8') as f:
- writer = csv.writer(f);
- if results:
- headers = [i[0] for i in cursor.description];
- writer.writerow(headers);
- for row in results:
- writer.writerow(row);
- def read(self, filename='results.csv'):
- data_dicts = []
- try:
- with open(filename, mode='r', encoding='utf-8') as csvfile:
- reader = csv.DictReader(csvfile);
- for row in reader:
- data_dicts.append(row);
- except IOError as e:
- print(f"read_elife_account_data error occurred: {e}");
- print(data_dicts);
- return data_dicts;
- def main():
- syncer = OfpayDataSyncer();
- syncer.sync('elife_accout_data.csv');
- # syncer.read('elife_accout_data.csv');
- if __name__ == "__main__":
- main();
|