我正在尝试导入字段中包含引号的数据集合。它们目前以制表符分隔。
根据文档(http://www.sqlite.org/cvstrac/wiki?p=ImportingFiles)我可以理解,sqlite shell 应该按字面解释引号,我认为这意味着我不应该有问题。
我在这条线上遇到了一个问题:
1193782372 Lips Like Sugar (12" Mix) Echo & the Bunnymen 80's/12": The Extended Collection a76d9b04-51d9-4672-801f-356ab36dbae7 ccd4879c-5e88-4385-b131-bf65296bf245 1abb270a-e791-407f-a989-ff3ad6f8401c
由于不清楚选项卡的位置,我将它们包含在以下行中。
1193782372\tLips Like Sugar (12" Mix)\tEcho & the Bunnymen\t80's/12": The Extended Collection\ta76d9b04-51d9-4672-801f-356ab36dbae7\tccd4879c-5e88-4385-b131-bf65296bf245\t1abb270a-e791-407f-a989-ff3ad6f8401c
我正在尝试执行以下操作但出现错误。
sqlite> .separator \t
sqlite> .import ./file.txt table
Error: ./file.txt line n: expected 7 columns of data but found 5
它可以在没有双引号的情况下工作,但引号很重要。我似乎也无法使用 \" 转义引号。
如何正确导入我想要的数据?
最佳答案
Sqlite3 的 .import 工具的行为就好像它的输入是逗号分隔值格式,即使 .separator 不是逗号。您可以通过将引号 (") 加倍 ("") 并引用它们出现的整个字段来转义引号 (")。
在通过以下过滤器运行测试数据后,我得到了一个干净的 .import:
sed 's/"/""/g;s/[^\t]*/"&"/g' file.txt >quoted.txt
关于带引号的 sqlite3 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15212489/
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
如何检查Ruby文件是否是通过“require”或“load”导入的,而不是简单地从命令行执行的?例如:foo.rb的内容:puts"Hello"bar.rb的内容require'foo'输出:$./foo.rbHello$./bar.rbHello基本上,我想调用bar.rb以不执行puts调用。 最佳答案 将foo.rb改为:if__FILE__==$0puts"Hello"end检查__FILE__-当前ruby文件的名称-与$0-正在运行的脚本的名称。 关于ruby-检查是否
我正在使用Ruby1.8.7,试图生成一个带有\'字符的字符串,以便创建一个在MySQL中运行的脚本。结果应该是这样的:INSERTINTOtable(name,description)values('Joanad\'Arc','')但我不能在ruby字符串中只得到一个反斜杠。使用以下代码:string="INSERTINTOtable(name,description)values('Joanad\\'Arc','')"我得到了以下字符串:INSERTINTOtable(name,description)values('Joanad\\'Arc','')还有:string="IN
出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t
我正在尝试创建一个与compass一起使用的本地配置文件,这样我们就可以处理开发人员机器上的不同导入路径。到目前为止,我已经尝试将文件导入到异常block中,以防它不存在,然后进一步使用该变量:local_config.rbVENV_FOLDER='venv'config.rbVENV_FOLDER='.'beginrequire'local_config.rb'rescueLoadErrorendputsVENV_FOLDER通常我是一名Python开发人员,所以我希望导入将VENV_FOLDER的值更改为venv,但它仍然是。之后。有没有一种方法可以导入local_config.r
我在ruby/rails中导入此CSV文件时遇到问题我得到的错误信息是这样的:Missingorstrayquoteinline1(CSV::MalformedCSVError)但我不确定发生了什么,因为我的CSV看起来非常好。以下是示例数据:"lesley_grades","lesley_id","last","first","active","site","cohort","section","sections_title","faculty","completed_term_cred","term","sec_start_date","sec_end_date","grade
ZedShaw的LearnRubytheHardWay第9章使用三重双引号:puts"""There'ssomethinggoingonhere.Withthethreedouble-quotes.We'llbeabletotypeasmuchaswelike.Even4linesifwewant,or5,or6."""我试着用单双引号写同样的东西,它似乎工作正常。我不明白三引号和单双引号之间的区别。我错过了什么吗? 最佳答案 我不知道他为什么在他的书中使用三重双引号。它们没什么特别的,一个双引号就可以了。这是ruby的一个鲜为
最好用一个例子来解释:文件1.rb:deffooputs123end文件2.rb:classArequire'file1'endA.new.foo将给出错误“':调用了私有(private)方法'foo'”。我可以通过执行A.new.send("foo")来解决这个问题,但是有没有办法公开导入的方法?编辑:澄清一下,我没有混淆include和require。另外,我不能使用正常包含的原因(正如许多人正确指出的那样)是因为这是元编程设置的一部分。我需要允许用户在运行时添加功能;例如,他可以说“run-this-app--includefile1.rb”,应用程序的行为将根据他在file1
尝试在我的Rails应用程序中导入CSV文件时,出现错误UTF-8中的无效字节序列。一切正常,直到我添加了一个gsub方法来将其中一个CSV列与我的数据库中的一个字段进行比较。当我导入CSV文件时,我想检查每一行的地址是否包含在特定客户端的不同地址数组中。我有一个带有alt_addresses属性的客户端模型,其中包含客户端地址的几种不同可能格式。然后我有一个引用模型(如果您熟悉本地SEO,您就会知道这个术语)。引用模型没有地址字段,但它有一个nap_correct?字段(NAP代表“姓名”、“地址”、“电话号码”)。如果CSV行的名称、地址和电话号码与我在该客户的数据库中拥有的相同,
我有以下字符串:a="001;Barbara;122"我拆分成字符串数组:names=a.split(";")names=["001","Barbara","122"]我应该怎么做才能将每个元素另外用''引号括起来?结果应该是names=["'001'","'Barbara'","'122'"]我知道这听起来很奇怪,但我需要它在rubyonrails中进行数据库查询。出于某种原因,如果我的名字在“”引号中,我将无法访问数据库记录。我在数据库中确实有mk1==0006但rails不想以某种方式访问它。但是,它确实访问1222。sql="SELECTmk1,mk2,pk1,pk