简单查询在SQL中工作,但不在python中的Sqlite3中工作

简单查询在SQL中工作,但不在python中的Sqlite3中工作,sqlite,Sqlite,下面是工作正常的sql查询: SELECT * FROM contracts.wires.monthly_data 但它在python中不起作用 import sqlite3 connection = sqlite3.connect("contractsdbro") print(connection) crsr = connection.cursor() crsr.execute("SELECT * FROM contracts.wires.monthly_data") ans=

下面是工作正常的sql查询:


SELECT * FROM contracts.wires.monthly_data

但它在python中不起作用


import sqlite3 
connection = sqlite3.connect("contractsdbro") 
print(connection) 
crsr = connection.cursor() 
crsr.execute("SELECT * FROM contracts.wires.monthly_data")
ans= crsr.fetchall()
错误:

正如你在书中看到的

有效语法为schema-name.table-name您有一个额外的组件

你没有提供足够的信息,只是猜测而已

crsr.execute("SELECT * FROM monthly_data") 
应该有用


您可以使用sqlite3命令行工具浏览数据库。

将*更改为字段名,您应该through@Satya:刚刚尝试在sql中从contracts.wires.monthly\u数据中选择事务id、ag\u amount;python中仍然存在同样的错误。你能解释一下什么是合同,电线,每月吗_data@Satya:contracts.wires.monthly_数据在SQL中运行时工作正常,所以我认为应该是contract是SchemaName,wire是TableName,所以不确定第三个组件是什么。不是真正的sqlexpert@Satya:think contracts是数据库,wires是schemaname,monthly\u data是表名您可能还希望包含更正的代码以使其成为完整的答案。@Diego:contracts.wires.monthly\u data在SQL中运行良好,那么,你能告诉我们slqite3中的等价物是什么吗?@TimBiegeleisen:想想契约是数据库,wires是schemaname,monthly_数据是数据库tablename@AnandKC-除非附加数据库,否则SQLite中没有架构名称。如果您没有附加数据库,并且只有一个数据库,那么除了从每月的数据中选择*之外,您不需要其他任何东西。@GIS Jonathan:谢谢,我有多个数据库,在这种情况下,我的命令应该是什么
crsr.execute("SELECT * FROM monthly_data")