我有一组我想要处理的.csv文件.使用SQL查询处理它会容易得多.我想知道是否有某种方法可以加载.csv文件并使用SQL语言来使用像python或ruby这样的脚本语言来查看它.使用类似于ActiveRecord的东西加载它会很棒.
问题是我不想在运行脚本之前在某处运行数据库.我不需要在脚本语言和一些模块之外进行额外的安装.
我的问题是我应该使用哪种语言和哪些模块来完成这项任务.我环顾四周,找不到任何适合我需要的东西.它甚至可能吗?
我有以下问题:
我上课了:
class Word(object):
def __init__(self):
self.id = None
self.columns = {}
def __str__(self):
return "(%s, %s)" % (str(self.id), str(self.columns))
Run Code Online (Sandbox Code Playgroud)
self.columns是一个dict,它将保存(columnName:columnValue)值.列的名称在运行时是已知的,例如,它们被加载到wordColumns列表中
wordColumns = ['english', 'korean', 'romanian']
Run Code Online (Sandbox Code Playgroud)
wordTable = Table('word', metadata,
Column('id', Integer, primary_key = True)
)
for columnName in wordColumns:
wordTable.append_column(Column(columnName, String(255), nullable = False))
Run Code Online (Sandbox Code Playgroud)
我甚至创建了一个显式映射器属性来"强制"表格列映射到word.columns [columnName],而不是word.columnName,我没有得到任何映射错误,但它似乎不起作用.
mapperProperties = {}
for column in wordColumns:
mapperProperties['columns[\'%']' % column] = wordTable.columns[column]
mapper(Word, wordTable, mapperProperties)
Run Code Online (Sandbox Code Playgroud)
当我加载一个单词对象时,SQLAlchemy创建一个具有word.columns ['english'],word.columns ['korean']等属性的对象,而不是将它们加载到word.columns dict中.因此,对于每个列,它会创建一个新属性.而且word.columns字典甚至不存在.
同样,当我尝试坚持一个单词时,SQLAlchemy希望在名为word.columns ['english'](字符串类型)的属性中找到列值,而不是字典word.columns.
我不得不说我对Python和SQLAlchemy的经验非常有限,也许我不可能做我想做的事情.
任何帮助,赞赏,
提前致谢.