downdata.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #!/usr/bin/python
  2. # -*- coding=utf-8 -*-
  3. # @Create Time: 2024-01-12 13:25:10
  4. # @Last Modified time: 2024-01-23 16:38:29
  5. import pymysql
  6. import pandas as pd
  7. class MYDATABASE:
  8. def __init__(self, db_name=None):
  9. '''连接数据库,创建游标'''
  10. config = dict(zip(['host', 'user', 'port', 'password'],
  11. ['192.168.1.202', 'root', 13388, 'zh123456']))
  12. config.update(database=db_name)
  13. self.connection = pymysql.connect(**config)
  14. self.cursor = self.connection.cursor()
  15. def __del__(self):
  16. self.connection.close()
  17. def create_database(self, db_name: str):
  18. '''新建数据库'''
  19. sql = f'CREATE DATABASE IF NOT EXISTS {db_name};'
  20. self.cursor.execute(sql)
  21. def create_table(self, tbl_name: str):
  22. '''新建数据库'''
  23. sql = f'CREATE TABLE IF NOT EXISTS {tbl_name};'
  24. self.cursor.execute(sql)
  25. def drop_database(self, db_name: str):
  26. '''删除数据库'''
  27. sql = f'DROP DATABASE IF EXISTS {db_name};'
  28. self.cursor.execute(sql)
  29. def drop_table(self, tbl_name: str):
  30. '''删除数据库'''
  31. sql = f'DROP TABLE IF EXISTS {tbl_name};'
  32. self.cursor.execute(sql)
  33. def query(self, sql: str):
  34. '''以数据框形式返回查询据结果'''
  35. self.cursor.execute(sql)
  36. data = self.cursor.fetchall() # 以元组形式返回查询数据
  37. header = [t[0] for t in self.cursor.description]
  38. df = pd.DataFrame(list(data), columns=header) # pd.DataFrame 对列表具有更好的兼容性
  39. return df
  40. def show_databases(self):
  41. '''查看服务器上的所有数据库'''
  42. sql = 'SHOW DATABASE;'
  43. return self.query(sql)
  44. def select_database(self):
  45. '''查看当前数据库'''
  46. sql = 'SELECT DATABASE();'
  47. return self.query(sql)
  48. def show_tables(self):
  49. '''查看当前数据库中所有的表'''
  50. sql = 'SHOW TABLES;'
  51. return self.query(sql)
  52. def insert_table(self, sql):
  53. try:
  54. # 执行sql语句
  55. cursor.execute(sql)
  56. self.connection.commit()
  57. except Exception as e:
  58. # 发生错误时回滚
  59. self.connection.rollback()
  60. # mydb = MYDATABASE(db_name="mzinfo")
  61. # df = mydb.query("SELECT * FROM recoder;")
  62. # print(df)
  63. # from sqlalchemy import create_engine
  64. # connect_info = 'mysql+pymysql://{}:{}@{}:{}?charset=utf8'
  65. # engine = create_engine(connect_info)
  66. sql_cmd = "SELECT record_Time, current_Url, user_Id, request_Method, event_Type, form_Data, target_Url, iframe_Url, button_Text FROM recoder WHERE user_Id = 'fuli@mz.gd.csg.cn' LIMIT 1000;"
  67. # df = pd.read_sql(sql_cmd, con=engine, index_col="record_Time")
  68. con = pymysql.connect(host='192.168.1.202', user='root', port=13388, password='zh123456', database='mzinfo', charset='utf8', use_unicode=True)
  69. df = pd.read_sql(sql_cmd, con)
  70. df['record_Time'] = pd.to_datetime(df['record_Time'])
  71. df = df.set_index('record_Time')
  72. print(df.head)
  73. df.to_json("fuli_data.json", orient='records', lines=True, force_ascii=False)