- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个随机文本数据,我需要确定其文件类型,例如 .xls、.csv、.tsv、.json 和 .html。目前我正在使用强力来解析所有不同格式的文件。
我的问题发生在文件轻微损坏时,并且在解析过程中会失败。在这些情况下,是否有一个相当好的启发式方法可以猜测文件类型,以便我可以根据这种格式进一步“检查”数据?
我正在使用node.js,以防已经有一个库。我对 Node.js 之外的解决方案持开放态度。
我尝试使用mmmagic,但它只返回“text/plain”,而不是我需要的信息(.tsv,.json,.xml),livescript中的示例代码:
useMagic = (res)->
buf = new Buffer res.body
magic = new mmmagic.Magic! ##return UTF-8 Unicode text, with very long lines, with no line terminators
#magic = new mmmagic.Magic mmmagic.MAGIC_MIME ## return text/plain; charset=utf-8
#magic = new mmmagic.Magic mmmagic.MAGIC_MIME_TYPE ##text/plain
err, magicalres <- magic.detect buf
magicalres |> console.log
url = "https://sheethub.com/data.fda.gov.tw/%E4%B8%8D%E7%AC%A6%E5%90%88%E9%A3%9F%E5%93%81%E8%B3%87%E8%A8%8A%E8%B3%87%E6%96%99%E9%9B%86/i/96/%E7%B3%AF%E7%B1%B3?page=1&format=json"
err, res, body <- request {"url": url, "encoding": null}
result = res |> useMagic
我正在添加编译后的 JavaScript 代码,也许这会更容易:
request = require('request');
mmmagic = require('mmmagic');
useMagic = function(res){
var buf, magic;
buf = new Buffer(res.body);
magic = new mmmagic.Magic();
return magic.detect(buf, function(err, magicalres){
return console.log(
magicalres);
});
};
url = "https://sheethub.com/data.fda.gov.tw/%E4%B8%8D%E7%AC%A6%E5%90%88%E9%A3%9F%E5%93%81%E8%B3%87%E8%A8%8A%E8%B3%87%E6%96%99%E9%9B%86/i/96/%E7%B3%AF%E7%B1%B3?page=1&format=json";
request({
"url": url,
"encoding": null
}, function(err, res, body){
var result;
return result = useMagic(
res);
});
我一直在使用包括 res.headers['content-type']
在内的方法组合,但仍然有 cases所有方法都失败了。
最佳答案
你厌倦了mmmagic吗?模块,它提供了到libmagic的绑定(bind)?
它允许检查文件中已知的“神奇”标识符。通常,它只需要访问文件的前几个字节即可执行此操作。
我想这种方法本身可能被认为是“蛮力”,但至少它依赖于一个众所周知且经过充分测试的库。
mmmagic 的最初建议未能发挥魔力后更新:
如果您始终使用 request 模块通过 HTTP(S) 请求数据,则响应 header 可能会提供提示:
// returns 'text/json' for your data.fda.gov.tw sample
var mimeType = res.headers['content-type'];
如果做不到这一点,fsql Perl 模块包含 regex-based logic for determining if text is CSV, TSV, YAML or JSON这可能适合在您自己的代码中重新利用。
关于javascript - 如果数据的格式略有损坏,是否仍然可以确定其文件类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28942878/
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我目前正在尝试制作一个非常简单的应用程序,它会根据一天中的时间问候。我的代码是: open System let read() = Console.Read() let readLine() = Co
我已经运行Elasticsearch服务很长时间了,但是突然遇到了以下情况 由以下原因导致:org.elasticsearch.index.translog.TranslogCorruptedExce
我对执行以下操作的 php 重定向脚本有一个奇怪的问题: 在用户的浏览器中植入 Cookie,或者读取现有 Cookie(如果有)。 将用户重定向到另一个网址(重定向的网址是原始网址中的参数,例如 h
我正在使用 iText 7.0.0(Java 风格),似乎表格单元格 HorizontalAlignment 被忽略,因为 CENTER 和 RIGHT 都不起作用。你能重现这个吗? see th
简而言之: 我有一个可以从多个线程访问的计数器变量。尽管我已经实现了多线程读/写保护,但该变量似乎仍然以不一致的方式同时写入,导致计数器结果不正确。 深入杂草: 我使用的“for 循环”会在后台触发大
我有一个 REST 项目,在访问控制服务类中保存用户的ArrayList。一切都工作正常,直到 REST Web 服务突然抛出 java.util.NoSuchElementException。单步查
已关闭。此问题不符合Stack Overflow guidelines 。它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
当我刷新页面时,我无法显示 voteUp/Down,因为如果我执行 voteUp/Down(+1 或 -1) 并刷新页面,这会再次返回 voteUp/Down (0)。过去我使用 JSON,但社区推荐
我正在为离散时间 CPU 调度模拟器编写代码。它只是生成流程并相应地安排它们。我目前正在实现 FCFS 计划。我理解离散时间模拟器的本质,但我在用 C++ 实现时遇到了麻烦。 问题出现在handleN
尝试使用 yum 部署包时出现错误: 2016-07-07 14:14:31,296 - ERROR - error: rpmdb: BDB0113 Thread/process 6723/1
我有一个简单的同步队列 template class SynchronisedQueue { public: void Enqueue(const T& d
我正在使用 hadoop 0.20.append 和 hbase 0.90.0。我将少量数据上传到 Hbase,然后出于评估目的杀死了 HMaster 和 Namenode。在此之后,我向 Hbase
我使用 symfony 框架 1.4 创建了一个网站。我正在使用 sfguard 进行身份验证。 现在,这在 WAMP (windows) 上运行良好。我可以在不同的浏览器上登录多个帐户并使用该网站。
目前我已经实现了 HashMap private static Map cached = new HashMap(); 和 Item 是一个具有属性的对象 Date expireTime 和 byte
我试图将 2 个不同的 WPF 控件绑定(bind)到 ViewModel 中的同一属性,即 CheckBox.IsChecked 和 Expander.IsExpanded。我想要实现的行为是让 C
我希望这是一个简单的问题,但我没有找到答案。 我想让 build.gradle 文件通过替换某些变量来设置我的 Spring Boot 应用程序中的版本。这与广告一样有效: def tokens =
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
这个问题在这里已经有了答案: In a fragment shader, why can't I use a flat input integer to index a uniform array o
我已经下载了 OSM 世界地图。解析时出现异常: osm bound changeset (...) changeset Exception in thread "main" org.xml.sax.
我是一名优秀的程序员,十分优秀!