【问题标题】:Data Analysis using SQL/Python使用 SQL/Python 进行数据分析
【发布时间】:2021-04-20 21:34:56
【问题描述】:

我正在使用 Kaggle 上的 SQL 进行数据分析。

https://www.kaggle.com/dimarudov/data-analysis-using-sql/comments

但是,我不确定为什么表会返回一个空白数据库。

import numpy as np
import pandas as pd
import sqlite3
import matplotlib.pyplot as plt

path = r"C:/Users/ksumm/OneDrive/Desktop/Python Projects/Euro Soccer/database.sqlite"
database = path + 'database.sqlite'

conn = sqlite3.connect(database)

tables = pd.read_sql("""SELECT *
                     FROM sqlite_master
                     WHERE type='table';""", conn)

输出图像: Output

【问题讨论】:

  • 您在文件名中重复了database.sqlite

标签: python sql sqlite


【解决方案1】:

而不是使用

database = path + 'database.sqlite'

你可以直接使用path,因为该路径已经包含了sqlite数据库的路径。

修改代码:

import numpy as np
import pandas as pd
import sqlite3
import matplotlib.pyplot as plt

path = r"C:/Users/ksumm/OneDrive/Desktop/Python Projects/Euro Soccer/database.sqlite"

conn = sqlite3.connect(path)

tables = pd.read_sql("""SELECT *
                     FROM sqlite_master
                     WHERE type='table';""", conn)

import numpy as np
import pandas as pd
import sqlite3
import matplotlib.pyplot as plt

path = r"C:/Users/ksumm/OneDrive/Desktop/Python Projects/Euro Soccer/"
database = path + "database.sqlite" 

conn = sqlite3.connect(database)

tables = pd.read_sql("""SELECT *
                     FROM sqlite_master
                     WHERE type='table';""", conn)

【讨论】:

    【解决方案2】:
    path = r"C:/Users/ksumm/OneDrive/Desktop/Python Projects/Euro Soccer/database.sqlite"
    database = path + 'database.sqlite'
    

    您将数据库名称附加到数据库名称。如果你查看你的磁盘,你可能会发现一个名为

    的文件

    C:\Users\ksumm\OneDrive\Desktop\Python Projects\Euro Soccer\database.sqlitedatabase.sqlite

    为了避免以后出现这种情况,Python SQLite 模块有一种稍微奇怪的方式,即在您打开数据库时创建数据库。 connect 方法接受一个 URI,而 URI 接受参数。当文件名正确时,这将做你想做的事:

    conn = sqlite3.connect('file:%s?mode=rw' % database, uri=True )
    

    如果database 没有描述现有文件,rw 模式会导致函数失败,引发 sqlite3.OperationalError 异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      相关资源
      最近更新 更多