任何人都知道如何使用mysqldb将具有大量行的MySQL表转换为Python中的字典对象列表?
我的意思是将一组MySQL行(列'a','b'和'c')转换为如下所示的Python对象:
data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 }, { 'a':'Q', 'b':(1, 4), 'c':5.0 }, { 'a':'T', 'b':(2, 8), 'c':6.1 } ]
Run Code Online (Sandbox Code Playgroud)
谢谢 :)
我有一个非常长的文本文件,我正在尝试使用Python进行处理.
但是,以下代码:
for line in open('textbase.txt', 'r'):
print 'hello world'
Run Code Online (Sandbox Code Playgroud)
仅产生以下输出:
hello world
Run Code Online (Sandbox Code Playgroud)
就好像Python认为文件只有一行长,虽然在文本编辑器中查看时它长达数千行.使用file命令在命令行上检查它会给出:
$ file textbase.txt
textbase.txt: Big-endian UTF-16 Unicode English text, with CR line terminators
Run Code Online (Sandbox Code Playgroud)
有什么不对吗?我需要更换线路终结器吗?
正如标题所说:我有一堆包含数据的制表符分隔的文本文件。
我知道如果我使用“CREATE TABLE”语句手动设置所有表,然后我可以使用“加载数据”或“mysqlimport”将它们导入等待表。
但是在 MySQL 中有什么方法可以根据选项卡文件自动创建表吗?好像应该有 (我知道 MySQL 可能必须猜测每列的数据类型,但您可以在选项卡文件的第一行中指定。)
如何在Python中强制使用Latin-1(我猜这意味着iso-8859-1?)文件输出?
这是我目前的代码.它可以工作,但是尝试将生成的输出文件导入Latin-1 MySQL表会产生奇怪的编码错误.
outputFile = file( "textbase.tab", "w" )
for k, v in textData.iteritems():
complete_line = k + '~~~~~' + v + '~~~~~' + " ENDOFTHELINE"
outputFile.write(complete_line)
outputFile.write( "\n" )
outputFile.close()
Run Code Online (Sandbox Code Playgroud)
生成的输出文件似乎保存在"Western(Mac OS Roman)"中,但如果我将其保存为Latin-1,我仍会遇到奇怪的编码问题.我怎样才能确保所使用的字符串和文件本身一旦生成就全部用Latin-1编码?
原始字符串(在textData
字典中)已经从RTF文件中解析 - 我不知道这是否有所不同.
我对Python和编码有点新手,所以如果这是一个愚蠢的问题,请道歉.我试过看文档,但还没有走得太远.
我正在使用Python 2.6.1.