解析CSV用逗号领域

我有与不封闭的领域内逗号CSV文件。 不幸的是我必须解析这个文件,可以得到它与正确格式化过更换不行。

我真的不知道从哪里开始。

--------------解决方案-------------

好。 我所看到的是这样的:你有8000行,基本上有一个CSV语法错误在其中。 您可以手动找出哪些是这样,但手动修复8000项有点多。

很明显第一种方法是尝试,看看它是如何,你可以手动弄清楚哪些列有这个问题。 如果它是你可以定义规则,你在生意。 如果它足够简单,你可以写一个小的文本编辑器宏通过该文件,并为您代劳。 如果您的文本编辑器不支持宏。 使用awk 。 如果你是在Windows和没有awk ,然后去得到它。

如果它太复杂为, 解决您的实际问题。 去修复任何生成此CSV文件来生成它的权利。 如果是别人的代码,你没有访问,告诉他们要修复它。 “你正在生成8000不可分析的条目”好像在我的书一个不错的理由。 迟早他们可能会生成此文件为您处理的一个新的版本,所以这真的是正确的事情。

有没有可能是你可以用它在短文本编辑器手动分析记录的事情。 逗号分隔符基本上无用的,如果有从在数据有效逗号区分它们没有可辨别方式。

如果你可以从谁创造的坏一个更清洁的文件,这可能不是试图修复了你有一个麻烦少得多。

你可以运行一个Excel宏重新格式化逗号的一些其它字符(假设$的东西不是在你的文件),暂时,那么一旦你解析的文件,你可以通过一些代码格式化字符运行结果回到原来的逗号。

编辑:我假设你有访问原始文件看,你在这里标记的Excel?

我觉得你可以期望的最好的80%自动的,这意味着你会做满1000手动最好的情况。 你只需要聪明 - 这就是存在的数据。 阅读每一行和计数的逗号。 如果是适量的,写出来,以一个新的文件。 如果它是太多,将其发送到异常处理程序。

先从你绝对知道的数据。 是第一列时间戳? 如果你知道,你可以从走“20逗号的时候应该有18”到“19逗号的时候应该有17”。 我知道这并不完全解除您的精神,但它的进步。 是否有一个位置,就像一个工厂的名字,在那里的某个地方? 也许你可以从培养良好的数据的列表,并在坏数据搜索。 如果列7应该是厂名,通过你的工厂名称列表,看看其中的一个存在。 如果是这样,数着起始和之间的之间的逗号结束(或者你已经建立了另一个很好的逗号位置)。

如果你有一些独特的数据,可以正则表达式来找到它的位置在字符串中,并再次,前后数逗号,看它是否就是它应该是。 就像如果你有一个纬度/经度读数或者是格式99A99-999部件编号。

如果你能发布良好的数据的五年或十年行,也许有人能提出更为具体的方式来确定列和它们的位置。

祝你好运。

分类:高强 时间:2012-01-01 人气:0
本文关键词: CSV,EXCEL,数据
分享到:

相关文章

  • 什么是从CSV / Excel中的ASP.NET(MVC)的导入过程中,数据正常化推荐的方式? 2012-02-28

    我知道有对堆栈溢出千数据导入相关的问题,请接受我的道歉,如果这已经被问的地方,但我想知道,如果任何人都可以从CSV / Excel 中导入过程中出谋划策normalisaing数据的任何尝试和测试解决方案在C#/ ASP.NET MVC 3+. 我可以代码的东西做的工作,但不知道是否有任何开源库或工具,它可以帮助了这一点. 我的感兴趣的领域如下: 导入数据时,我偶尔需要正常化某些字段,这一个简单的例子如下所示: 我的输入可以是: Name, JobTitle ============== Nic

  • 数据URI用来导出为CSV / Excel文件(没有服务器端的请求):浏览器支持/限制? 2014-05-26

    以下问题: JavaScript或Flash导出为CSV / Excel中 是否有可能使用任何HTML5花哨到本地存储导出到Excel? 并建议,我在想生成客户端的CSV文件的内容,然后使用数据URI来提示从浏览器的"开放式,创先争优"的行动. 阅读的限制和不同级别的支持来自浏览器的这一功能(数据URI)后,我想知道这种技术的第一手经验和有关的事情,我已经照顾. 谢谢. --------------解决方案------------- 我一直没能可靠地使其在IE浏览器. 你可以使用服务器

  • 我可以得到相关数据到Excel数据透视表 2012-01-02

    我有一个表(让我们一起去的葡萄酒为例),列出每瓶酒在我的地窖,当我买了它,我花了多少钱等. 有描述该酒以逗号分隔的标签,如"水果,白"一栏. 我已经从该数据创建的透视表,与说明书作为一个过滤柱. 不过,我不能以"白"过滤. 我必须找到一个包含"白",如每一个描述"干白","白,脆"等. 作为从RDBMS的背景,我自然倾向是把标签在自己的表锁定式设计,对酒行这样有零或更多的标签行,每行的酒. 怎么样,如何在地

  • 通过Web服务移动从SQL Server Excel数据 2012-03-12

    我的用户希望从我在Excel应用程序数据. 数据驻留在一个SQL Server数据库,但我不希望用户直接访问数据库,我宁愿为他们提供一个Web服务来获取数据. 什么是从SQL Server数据通过Web服务迁移到Excel中的最佳方式是什么? --------------解决方案------------- 你可以做到这一点作为直asp.net页面,并返回一个.csv文件. 如果更改的mim​​etype为text / CSV,它应该默认在Excel中打开. 这将是最简单的方法,一,我已经在过去使

  • 比较Excel数据到Oracle数据库的C# 2012-03-22

    我有以下要求: 从Excel读取选定列(DetailsId,SentDate,计数),获得从Oracle数据库各自DetailsId(S)的数据. 显示从Excel和数据库在网格(MVC)的比较数据. 如果数据匹配什么也不做,如果有一个不匹配更新一些数据库列在Excel数据. 任何建议如何可以做到这一点 谢谢 --------------解决方案------------- 将您的Excel电子表格CSV格式,采用CSV文件作为源在Oracle中定义一个外部表,然后比较使用C#和显示结果中SQL作

  • 与Python导入Excel数据 2012-05-05

    我试图创建XY工作台使用Excel数据.xls的要素类 我只是发现了MakeXYEventLayer_management但现在看来,这并不适用于.xls的. 我必须改变我的〜100文件到CSV或有人知道的把戏? 干杯 --------------解决方案------------- xlrd应该为你工作.

  • 动态更新Xcelsius的仪表板从Excel数据 2012-10-10

    我设计的Xcelsius仪表板,将需要更新一个星期的数据只存在于Excel数据透视表一次. 我已经能够通过把仪表板到XML文件或数据库创建在过去的动态仪表盘. 我在寻找的建议就如何动态读取Excel文件和Xcelsius仪表盘. --------------解决方案------------- 尝试Centigon解决方案CSV连接器. 其实最好的办法是到Excel文件保存为XML,并使用通过的Xcelsius和Excel的XML功能读回. 如果你需要一些帮助,也有一些视频,可以在两个MyXcel

  • SQL服务器在导入和导出向导选择数据类型导入Excel数据..Confusion 2013-03-15

    现在的问题是关于SQL Server 2010的导入和导出向导. 我在一个奇怪的现象. 我想Excel数据导入我的数据库. 一在Excel中列的是Part Number可以有像(418138031,A1801354B)值. 现在,在Import and Export Wizard - >在Edit mappings ..如果我选择nvarchar数据类型的列...只喜欢价值观A1801354B被导入到我的数据库. 如果我选择float数据类型只喜欢418138031值被导入到我的数据库. 我应该

  • 甲骨文请求(如何导入excel数据到Oracle) 2013-04-11

    这个问题已经在这里有一个答案: 加载Excel数据表到Oracle数据库的5答案 什么是从Excel(.xls的)数据导入到Oracle数据库的最好和/或最简​​单的方法是什么? 请,请与任何代码示例你能澄清. 在此先感谢您的宝贵回应. --------------解决方案------------- 一对从Excel导入数据到Oracle数据库中最常用的方法是内容导出为CSV和使用SQL * Loader将其导入到表中. 然而,最简单的方法是像蟾蜍或SQL开发者(这是我最喜欢的Oracle DB

  • SQL Server的导入与合并单元格的Excel数据 2013-09-15

    我有一组包含合并单元格,需要导入到SQL Server的Excel数据. 然而,进口展空的结果细胞被合并. 我已经使用IMEX功能尝试,其值0,1,2测试. 但它仍然进口合并单元格为空. 有没有办法这样做呢? 谢谢 SELECT * INTO BenchmarkSurvey FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\Benchmark Survey\Received\Survey1009.xls; Extended

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.302 (s). 10 q(s)