我有一个.sql
文件,其中包含数据库转储。我希望将此文件放入pandas数据框中,以便查看数据并进行操作。愿意采取任何解决方案,但需要明确的指示,我以前从未使用过.sql文件。
文件的结构如下:
-- MySQL dump 10.13 Distrib 8.0.11, for Win64 (x86_64)
--
-- Host: localhost Database: somedatabase
-- ------------------------------------------------------
-- Server version 8.0.11
DROP TABLE IF EXISTS `selected`;
CREATE TABLE `selected` (
`date` date DEFAULT NULL,
`weekday` int(1) DEFAULT NULL,
`monthday` int(4) DEFAULT NULL,
... [more variables]) ENGINE=somengine DEFAULT CHARSET=something COLLATE=something;
LOCK TABLES `selected` WRITE;
INSERT INTO `selected` VALUES (dateval, weekdayval, monthdayval), (dateval, weekdayval, monthdayval), ... (dateval, weekdayval, monthdayval);
INSERT INTO `selected` VALUES (...), (...), ..., (...);
... (more insert statements) ...
-- Dump completed on timestamp
答案 0 :(得分:0)
您应该为此使用sqlalchemy库: https://docs.sqlalchemy.org/en/13/dialects/mysql.html
或者,您也可以使用以下方法: https://pynative.com/python-mysql-database-connection/
第二个选项可以更轻松地将数据加载到mysql,因为您可以将sql文件文本作为查询对象并将其传递给连接。
类似这样的东西:
import mysql.connector
connection = mysql.connector.connect(host='localhost',
database='database',
user='user',
password='pw')
query = yourSQLfile
cursor = connection.cursor()
result = cursor.execute(query)
一旦加载了表,就可以使用sqlalchemy创建引擎以将熊猫连接到数据库,并只需使用pandas read_sql()命令将表加载到数据框对象即可。
另一个注意事项是,如果您只想操作数据,则可以从sql文件中获取values语句,并在需要时使用该语句手动填充数据框。只需将“值(....),(....),(....)”更改为mydict = {[....],[....],[....]并将其加载到数据框。或者,您可以将values语句转储为excel并删除括号并在列中添加文本,为其提供标题并保存,然后将其从excel加载到数据框。或者只是在excel中对其进行操作(您甚至可以使用concat公式来重新创建sql值语法并替换sql文件中的数据)。这真的取决于您的最终目标是什么。
很抱歉,您在这里没有及时得到答复。