小编fir*_*ush的帖子

YQL是否无法可靠地返回正确的数据 - 任何替换?

我正在撰写一份申请,根据市值和股息收益率选择公司.它使用Yahoo!的YQL REST API来获取这些数据.它似乎昨天运作良好,但今天我看到我的计划说其中一家公司的收益率为65.95%!没问题 - 我的代码中的错误.所以我认为.但是当我从yql url中查看xml的内容时:

http://query.yahooapis.com/v1/public/yql?q=select*从yahoo.finance.quotes其中在( "MRO")&ENV =商店符号://datatables.org/alltableswithkeys

我看到我贴在帖子底部的xml.(我在这里完全粘贴它,因为当有人在本周末之后看到它会有所不同.)

向下滚动到底部,你会发现它实际上说马拉松石油公司普通(MRO)股票的收益率为65.95%.您将在DividendYield标记的内容中看到它.

当我在这里查看Yahoo!的财务网站时:http://finance.yahoo.com/q? s = mro

它显示了更合理的产量:

Div & Yield:    0.68 (2.10%)
Run Code Online (Sandbox Code Playgroud)

那么,我是否误读了这些数据(我希望如此)?为什么我在他们公开的网站上看到的与我从查询中获得的内容之间存在差异?他们不是使用相同的数据库吗?

如果内容不可靠,请指向我不同的工具.我的应用程序是在python中.

如果它有用,这里是一个最小的代码片段:

#!/usr/bin/env python 

import yql
y = yql.Public()
q = 'use "http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml" as yahoo.finance.quotes; select * from yahoo.finance.quotes where symbol in ("MRO")'
result = y.execute(q)
print result.rows[0]['DividendYield']
Run Code Online (Sandbox Code Playgroud)

输出:

65.95
Run Code Online (Sandbox Code Playgroud)

谢谢!


编辑2012年2月11日:

我发帖后的第二天,我在雅虎上发现了这个.开发者网络:

http://developer.yahoo.com/forum/YQL/yahoo-finance-quotes-data-very-inaccurate/1313170622678-7121b5e0-317d-4a87-bd58-7a27cb8a62ce

那里有很多人评论在各个领域获取错误的数据.

Google有一个用于收集数据的API.以下是与以下yql请求相关的公司(MRO)使用它的示例:

http://www.google.com/ig/api?stock=MRO

也许这会对其他人有所帮助,但它似乎并没有包含股息信息,这对我的需求至关重要.

是否有其他人编写了一个应用程序,该应用程序使用令他们满意的来源以编程方式收集库存数据 如果是这样,请分享 - 我愿意转向其他事情.顺便说一句:我不需要实时数据.在市场关闭之后,我通常会在下班回家后不经常运行我的应用程序.

谢谢.


<query yahoo:count="1" yahoo:created="2012-02-11T06:30:09Z" yahoo:lang="en-US"><results><quote symbol="MRO"><Ask/>
<AverageDailyVolume>7003410</AverageDailyVolume>
<Bid/>
<AskRealtime>36.00</AskRealtime>
<BidRealtime>32.73</BidRealtime>
<BookValue>23.79</BookValue>
<Change_PercentChange>+0.55 - …
Run Code Online (Sandbox Code Playgroud)

python finance google-finance-api yql yahoo-finance

2
推荐指数
1
解决办法
1933
查看次数

如何决定是否需要从 sqlite 过渡

我正在使用 django 创建一个网站。它即将完成,但尚未上线。我正在尝试确定 SQLite 是否足够适合该站点,或者现在是否值得在开始时使用 PostgreSQL,而不是冒着以后需要转换到它的风险。(在这篇文章中,我提到 PostgreSQL,因为它对我来说是另一个竞争者。我确信可以使用 MySQL 或 Oracle 进行类似的分析。)

我可以使用人们的一些意见,了解他们如何决定在 django 项目中使用哪个数据库。

目前我对此的理解如下:

  • 根据我的经验,SQLite 非常简单。我不需要担心为它安装一些其他依赖项,它几乎可以与 django 一起开箱即用。

  • 根据我的在线研究,SQLite 似乎能够在成为性能瓶颈之前处理相当多的负载。

这是我不知道的:

  • 从 SQLite 迁移到 PostgreSQL 会涉及什么?同样,我目前处于仅开发阶段,因此不需要从 SQLite 转换任何数据库数据。是否只是在服务器上安装 PostgreSQL,然后调整 settings.py 文件来使用它?我对此表示怀疑,但是我的 django 代码需要更改吗?(我没有任何原始 SQL 查询 - 我的数据库访问仅限于 django 的模型 API。)

  • 从性能角度来看,PostgreSQL 是否在各方面都比 SQLite 更好?或者说SQLite相对于PostgreSQL有一定的优势吗?

  • 除了性能之外,与 SQLite 相比,使用 PostgreSQL 是否具有其他部署优势?

本质上我认为 SQLite 对于我的小网站来说已经足够好了。它真正流行的可能性有多大?可能没那么伟大。SQLite 现在正在为我工​​作,不需要我进行任何更改。然而,我担心也许从一开始就使用 PostgreSQL 会很容易,一年后我会因为没有进行转换而自责。但我很纠结——如果我使用 PostgreSQL,也许这对我来说会是不必要的麻烦,而且没有任何好处。

有人有在 SQLite 和其他东西之间做出决定的一般准则吗?

谢谢!

database sqlite django

2
推荐指数
1
解决办法
427
查看次数

我可以让返回类型自动处理具有相同签名但不同捕获的lambda吗?

我正在尝试使用auto作为返回的lambda函数的返回类型。这是一个最小的示例,它演示了我遇到的一个问题:

#include <iostream>
#include <memory>

auto
get_func()
{
    auto i = std::make_unique<int>(2);
    if (*i == 1) {
        return [i=std::move(i)]() {
            return *i;
        };
    }
    return [](){ return 2; };
}

int
main(int argc, char* argv[])
{
    auto func = get_func();
    std::cout << "val: " << func() << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我的Mac上,出现以下编译错误:

$ g++ -g -Wall -Werror -std=c++17 test.cc -o test
test.cc:13:5: error: 'auto' in return type deduced as '(lambda at test.cc:13:12)' here but deduced as '(lambda at test.cc:9:16)' in …
Run Code Online (Sandbox Code Playgroud)

c++ lambda auto c++17

2
推荐指数
1
解决办法
73
查看次数

clang-tidy:什么可能导致 NOLINT 评论不被尊重?

我已经为开源 Traffic Server 项目创建了一个 PR。作为 CI 的一部分,他们运行得井井有条。我的更改向 clang-tidy 公开了一个新文件,该文件现在被标记为移动后使用警告。这是测试代码,固定在我的更改所基于的提交上:

https://github.com/apache/trafficserver/blob/415cd8f/tests/tools/plugins/test_cppapi.cc#L115

这是该代码的副本,添加了一条注释,显示了它抱怨的地方:

void
f()
{
  TestCont::Mutex m(TSMutexCreate());

  TestCont c(m);

  ALWAYS_ASSERT(!!c)
  ALWAYS_ASSERT(c.asTSCont() != nullptr)
  ALWAYS_ASSERT(c.mutex() == m)

  TestCont c2(std::move(c));

  ALWAYS_ASSERT(!!c2)
  ALWAYS_ASSERT(c2.asTSCont() != nullptr)   // <--- Complains here
  ALWAYS_ASSERT(c2.mutex() == m)

  ALWAYS_ASSERT(!c)
  ALWAYS_ASSERT(c.asTSCont() == nullptr)
  ALWAYS_ASSERT(c.mutex() == nullptr)
Run Code Online (Sandbox Code Playgroud)

所以抱怨是有道理的,c2是在走棋之后使用的。但在这种情况下,TestCont通过设计明确支持移动后使用,并且测试有意执行此操作以确保其状态符合预期。

NOLINT因此,和就是为这种情况而NOLINTNEXTLINE创建的。所以我应用了这样的评论(显然,出于绝望,我添加了比我应该需要的更多的评论):

  // NOLINTNEXTLINE
   ALWAYS_ASSERT(!c) // NOLINT
   // We turn off the clang-tidy warning about this being a use after move
   // because that is the intention of the test. …
Run Code Online (Sandbox Code Playgroud)

c++ clang-tidy

2
推荐指数
1
解决办法
2186
查看次数

当基类使用虚拟时,在类hieracrhy中使用virtual

我不理解Stroustrup的A Tour of C++,第43和44页的继承示例.我复制了一个最小的例子来证明我的困惑:

#include <iostream>

class Shape {
public:
    virtual void draw() const = 0;
    virtual ~Shape() {};
};

class Circle : public Shape {
public:
    Circle(int p, int rr) : x{p}, r{rr} {}
    void draw() const { std::cout << "In Circle::draw()" << std::endl; }
private:
    int x;
    int r;
};

class Smiley : public Circle {
public:
    Smiley(int p, int r): Circle{p,r}, mouth(nullptr) {}
    ~Smiley() { delete mouth; }
    void draw() const { std::cout << "In …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism

1
推荐指数
1
解决办法
120
查看次数

如何在两个Autohotkey配置之间切换

我需要在两个AutoHotkey键映射配置之间切换.我想通过F3切换两者.从我的在线研究和StackOverflow,我认为以下应该做我想要的:

#ifwinactive

next_make_mac = %1%
msgbox next_make_mac: %next_make_mac%

#If next_make_mac
    msgbox Setting Mac settings.
    RAlt::Control
    Escape::Delete

    RWin::Escape
    LWin::LAlt
    LAlt::LWin
    next_make_mac := false
    msgbox Mac settings set.
#If

#If !next_make_mac
    msgbox Setting PC settings.
    Ralt::Escape
    msgbox PC settings set.
    next_make_mac := true
#If

msgbox %next_make_mac%

F3:: 
    Run %A_AhkPath% %A_ScriptName% %next_make_mac%
return
Run Code Online (Sandbox Code Playgroud)

但是,该#If next_make_mac指令始终评估为true.我不确定为什么会这样.事实上,即使我进入next_make_mac := false它仍然评估为真.有没有更好的方法来做我正在做的事情?

我正在运行AutoHotkey 1.1.21.03

autohotkey

1
推荐指数
1
解决办法
121
查看次数

是否有理由使用无符号类型作为非负常数?

我在代码审查中看到了类似的内容:

constexpr int64_t SOME_MAX = 2147483647;
Run Code Online (Sandbox Code Playgroud)

我最初的想法是添加一个请求,使其成为无符号类型,例如uint64_t.我的习惯是使用无符号整数来表示我知道应该总是积极的价值观.但后来我想知道这是否为常数增加了任何实际价值.有没有理由在c ++中将非负const设置为unsigned int类型?

c++

0
推荐指数
1
解决办法
95
查看次数

忽略错误:-i 和 -k 有什么区别

make即使依赖项的构建失败,我也想继续。我通常用它-i来完成这个任务。我的一个同事说他用-k. 事实上,这个堆栈溢出问题对于每个问题都有一个答案:

Make:命令失败后如何继续?

这两个选项有区别吗?

这是make手册页对这两个选项的说明:

   -i, --ignore-errors
        Ignore all errors in commands executed to remake files.

   -k, --keep-going
        Continue as much as possible after an error.  While the 
        target that failed, and those that depend on it, cannot be 
        remade, the  other  dependencies of these targets can be 
        processed all the same.
Run Code Online (Sandbox Code Playgroud)

-k描述的就是我所认为-i的。我确信我错过了一些东西:有人可以帮助我理解其中的区别吗?

makefile

0
推荐指数
1
解决办法
2164
查看次数

在 std::set 上不区分大小写查找

以下问题的措辞使我认为它可以满足我的需要:

不区分大小写的 std::set 字符串

请注意,他们提到了不区分大小写的搜索以及插入。但是,当我使用自定义比较器实现答案时,我会得到不区分大小写的插入,但不会进行搜索。也许我误解了所谓的“搜索”?这是我所看到的一个最小的例子:

#include <iostream>
#include <string>
#include <unordered_set>

using namespace std;

struct InsensitiveCompare {
  bool
  operator()(std::string_view a, std::string_view b) const
  {
    return std::equal(
            a.begin(),
            a.end(),
            b.begin(),
            b.end(),
            [](char a, char b) {
                return tolower(a) == tolower(b);
            }   
        );  
  }
};

std::unordered_set<std::string, std::hash<std::string>, InsensitiveCompare> s;


int
main(int argc, char* argv[])
{
    s.insert("one");
    s.insert("oNe");
    s.insert("tWo");

    cout << "size: " << s.size() << endl;

    auto found = s.find("TWO");
    cout << "found(TWO): " << (found != s.end()) << endl;
    found = …
Run Code Online (Sandbox Code Playgroud)

c++ stl

0
推荐指数
1
解决办法
141
查看次数