python - 将查询提交到sqlite时,为什么IPython无法返回具有多个字段的记录?

标签 python sqlite field ipython

我试图在python脚本中向sqlite数据库写一个简单的查询。为了测试我的参数是否正确,我尝试从ipython命令行运行查询。它看起来像这样:

import sqlite3
db = 'G:\path\to\db\file.sqlite'
conn = sqlite3.connect(db)
results = conn.execute('SELECT * FROM studies').fetchall()


由于某种原因,我的结果完全空白。然后我尝试了另一个测试查询:

results = conn.execute('SELECT id FROM studies').fetchall()


哪个正确返回。我发现星号[错误,请参阅下面的第二次更新]存在问题,因此我尝试从默认python命令行查询“ SELECT * FROM Studies”查询。瞧,它正确返回了。我尝试了所有正常的方法来使星号转义,只有各种各样的错误消息才能解决。有什么方法可以在IPython中运行此查询吗?



编辑:对不起,我错误地认为IronPython和IPython是相同的。我的意思是IPython命令行,而不是IronPython框架。



EDIT2:好的,事实证明星号确实可以正常工作,如以下成功查询所示:

'SELECT COUNT(*) FROM studies'


从这里发布的建议中可以看出,尝试返回具有多个字段的记录会导致错误结果,即:

'SELECT field1,field2 FROM studies'


仍然导致记录被返回。我相应地更改了问题的标题。

最佳答案

这是SQL。 IronPython与查询的处理几乎没有关系。您是否使用了不寻常的字符编码? (即不是UTF-8或ASCII)?

如果您SELECT id,fieldname,fieldname FROM studies会发生什么(换句话说,模拟“ *”的作用。)

关于python - 将查询提交到sqlite时,为什么IPython无法返回具有多个字段的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1133604/

相关文章:

mysql - 如何使mysql字段唯一?

"if a or b or c but not all of them"的 Python 语法

Python optparse、默认值和显式选项

sql - 如何在 sqlite 中使用 like 运算符进行复杂查询

ios - OneDrive iOS SDK,文件ID每次都会改变

swift - 在 Swift 中使用 FMDB 动态更新可变列数

Java 在代码块之间跳转

python - 相当于 python 的 roxygen2

python - 使用 pandas 从 csv 文件中读回元组

javascript - 自定义 Extjs 4+ 字段结构的最佳方法