我有以下代码,旨在列出在Freebase上上市的证券交易所网站:
#if INTERACTIVE
#r @"C:\Users\kit\Documents\Visual Studio 11\Projects\Demo\packages\FSharpx.TypeProviders.1.7.4\lib\40\FSharpx.TypeProviders.dll"
#r @"C:\Users\kit\Documents\Visual Studio 11\Projects\Demo\packages\FSharpx.TypeProviders.Freebase.1.7.4\lib\40\FSharpx.TypeProviders.Freebase.dll"
#r @"C:\Users\kit\Documents\Visual Studio 11\Projects\Demo\packages\FSharpx.TypeProviders.Freebase.1.7.4\lib\40\FSharpx.TypeProviders.Freebase.DesignTime.dll"
#endif
let GetExchanges() =
let dc = FreebaseData.GetDataContext()
dc.DataContext.SendingRequest.Add(fun e -> printfn "url: %s" e.RequestUri.AbsoluteUri)
dc.``Products and Services``.Business.``Stock exchanges``
|> Seq.truncate 10
|> Seq.iter (fun exchange -> printfn "Exchange: %s" exchange.Name
exchange.``Official website``
|> Seq.iter (fun site -> printfn "%s" site.Name))
没有最后两行(即只列出交换名称),代码运行良好。有了这些线路,我得到了400(糟糕的请求)。
该行生成的URL如下:
https://www.googleapis.com/freebase/v1/mqlread?query=[{"/type/对象/id": null,"/type/对象/名称": null,"可选": true,"/type/对象/type":"/type/uri","!/common/topic/official_website": [{"/类型/对象/id:"/en/amex","/type/html" target="_blank">对象/类型":"/通用/主题","限制": 500}]}]
...如果我浏览到它,我会从Freebase获得以下信息:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "badRequest",
"message": "Can't reverse /common/topic/official_website as it expects /type/uri, not an object"
}
],
"code": 400,
"message": "Can't reverse /common/topic/official_website as it expects /type/uri, not an object"
}
}
我是否使用正确的方法访问链接实体?如果是,这是类型提供程序中的错误吗?我在访问其他链接实体时也会遇到类似的错误。
就像错误所说的那样,您不能反转作为基元值属性的属性。您需要将查询翻过来,使其看起来像:
[{
"/type/object/id": "/en/amex",
"/common/topic/official_website": [{
"value": null,
"optional": true
}]
}]
该库必须对原语值有一定的了解,因此可能只需将/type/uri添加到包含/type/text、/type/rawstring等的任何列表中即可。
这是类型提供程序中的一个错误,现已修复:https://github.com/fsharp/FSharp.Data/issues/68
本文向大家介绍F# 使用CSV类型提供程序,包括了F# 使用CSV类型提供程序的使用技巧和注意事项,需要的朋友参考一下 示例 给定以下CSV文件: 您可以使用以下脚本读取数据:
问题内容: 我正在编写要与Azure Worker角色一起使用的F#。我希望类将连接字符串a作为参数。我创建一个数据库连接 但是dbSchema是一种类型,因此无法将其嵌入到我的类中(另一种类型)。我可以创建两个单独的模块,一个与数据库连接,另一个与我的课程 但是,如何在类的构造函数中使用connectionString创建连接? 问题答案: SQL数据库的类型提供程序将连接字符串用于两个不同的目
问题内容: 对于具有所有带有公共静态方法的实用程序类,正确的方法是什么? 我应该使用最终班还是抽象班? 请提出建议。 例如: 要么 问题答案: 有自己的目的。如果您希望其他类()实现某些类功能,则可以使用abstract。 如果它只是实用程序类,但是您不希望其他类将其子类化,那么我将选择类。如果实用程序类只有方法,则您无法以任何方式覆盖它们,因此将它们也包含在类中也没有区别。
问题内容: 当每个呼叫都取决于之前的呼叫是否已完成时,我试图找到创建异步呼叫的最佳方法。目前,我通过递归调用定义的流程函数来链接方法,如下所示。 这就是我目前正在做的。 然后我将其称为如下 虽然这对我来说非常好,但我不禁认为必须有一种更好(更简单)的方法。以后我的递归调用变得太深时,会发生什么? 注意 :我不是在浏览器中使用javascript,而是在Titanium框架中使用本机,这类似于Nod
问题内容: 即使在使用Java Swing一年以上之后,对我来说,它仍然像魔术一样。如何正确使用BufferStrategy,尤其是方法? 我想添加一个JFrame和一个Canvas,然后进行绘制。我还希望能够调整()画布的大小。每次我调整Canvas的大小时,似乎都会被浪费掉,或者变得毫无用处,因为在上使用并没有真正做任何事情。另外,它具有怪异的不确定性行为,我不知道如何正确同步它。 这就是我的
问题内容: 我想在Linux上使用该机制。我希望我的应用程序知道何时更改了文件。能否请您提供给我一个示例,该怎么做? 问题答案: 文档(来自具有inotify的Monitor文件系统活动) 在C API 提供了三个系统调用来构建各种文件系统监视器: 在内核中创建子系统的实例,并在成功和失败时返回文件描述符。与其他系统调用一样,如果失败,请检查诊断。 顾名思义,它增加了一块 手表 。每个监视都必须提