几个月来我一直在使用这样的网址,来自perl:
http://finance.yahoo.com/d/quotes.csv?s=$s&f=ynl1 #returns yield, name, price;
Run Code Online (Sandbox Code Playgroud)
今天,11/1/17,它突然返回999错误.
这是一个小问题,还是雅虎终止了这项服务?
即使我将URL直接输入浏览器,我也会收到错误,例如:
http://finance.yahoo.com/d/quotes.csv?s=INTC&f=ynl1
Run Code Online (Sandbox Code Playgroud)
所以它似乎不是一个"碎屑"问题.
注意:这不是过去已经回答过的问题!它昨天正在工作.它发生在本月的第一天是可疑的.
我看了以前类似的问题,只是更加困惑.
在python 3.4中,我希望在给定url的情况下将html页面作为字符串读取.
在Perl中,我使用get()执行LWP :: Simple.
matplotlib 1.3.1示例说:import urllib; u1=urllib.urlretrieve(url).python3找不到urlretrieve.
我试过u1 = urllib.request.urlopen(url),似乎得到一个HTTPResponse对象,但我不能打印它或得到它的长度或索引它.
u1.body不存在.我找不到HTTPResponsepython3中的描述.
HTTPResponse对象中是否有一个属性可以为我提供html页面的原始字节?
(来自其他问题的不相关的东西包括urllib2,我的python中不存在,csv解析器等)
编辑:
我在先前的问题中找到了一些部分(大部分)完成工作的东西:
u2 = urllib.request.urlopen('http://finance.yahoo.com/q?s=aapl&ql=1')
for lines in u2.readlines():
print (lines)
Run Code Online (Sandbox Code Playgroud)
我说'部分'因为我不想读单独的行,而只是一个大字符串.
我可以将这些行连接起来,但是每行打印都会在其前面添加一个字符"b".
它来自哪里?
同样,我想我可以在连接之前删除第一个字符,但这确实是一个kloodge.
在Win7的python3中,我将网页读入字符串.
然后,我想将字符串拆分为换行符中的列表.
我不能在我的代码中输入换行符作为split()中的参数,因为我在扫描字符串文字时遇到语法错误'EOL'
如果我输入字符\和n,我会收到Unicode错误.
有什么办法吗?
我查看了之前的相关帖子,评论者说"为什么不使用Windows安装程序?"
但是当我点击它时,Win7说它不知道如何运行它.我该怎么办这个文件?
之前我尝试通过从\ Python34\Scripts文件夹运行'pip3 install numpy'将Numpy安装到Py 3.4.0中.
它给出了340行错误.从...开始:
Downloading/unpacking numpy
Running setup.py (path:C:\Users\Windows\AppData\Local\Temp\pip_build_Windows\numpy\setup.py) egg_info for package numpy
Running from numpy source directory.
warning: no files found matching 'tools\py3tool.py'
warning: no files found matching '*' under directory 'doc\f2py'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.pyo' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
Installing collected packages: numpy
Running setup.py install for numpy
non-existing path … 我的perl\lib文件夹中有一个名为hsfSubs.pm的模块.我在模块中没有任何东西,但子程序和1;最后.
例如,一个子程序被命名pause.我没有实现导入或导出例程.
在我的主要程序中,我只是说use hsfSubs;,我随后可以pause毫无问题地打电话.如果我说的话,同样如此use hsfSubs qw(pause);.
为什么我需要使用出口,@EXPORT和@EXPORT_OK等或任何其他并发症?
Stack Overflow上关于Exporter的问题的多个答案告诉我们如何使用它,但我不明白为什么要使用它.
我做以下导入:
import matplotlib.pyplot as plt
import matplotlib.axes as ax
import matplotlib
import pylab
Run Code Online (Sandbox Code Playgroud)
它正确执行
plt.plot(y1, 'b')
plt.plot(y2, 'r')
plt.grid()
plt.axhline(1, color='black', lw=2)
plt.show()
Run Code Online (Sandbox Code Playgroud)
并显示图表.
但如果我插入
print("ylim=", ax.get_ylim())
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
AttributeError:'module'对象没有属性'get_ylim'
我试过更换斧头.与plt.,matplotlib等,我得到相同的错误.
打电话的正确方法是get_ylim什么?
雅虎财经上周(再次)更改了其网页格式,并且数据不可复制,可下载或可擦除,因为数据显然是间接加载的.(我可以在调试器中看到它.)
Yahoo Finance API目前不会返回单个选项符号的选项数据,更不用说是有效期或有效期的表,也不是YQL.
有没有人在过去一周成功下载或删除了雅虎财经的期权数据?如果是这样,怎么样?
它可能不相关,但我主要使用perl.
这个问题是关于编程的,因为下载数据肯定是编程的一部分.
我想写一个小程序,让我使用表单来更新一些本地文件.
我可以通过制作json来阅读它们,但JS不会让我写本地文件.
我一直在Perl中这样做,但它没有方便输入的GUI(没有尝试使用一些Tkx kludge)
是否有一种语言可以让我使用GUI并编写本地文件(并支持哈希和正则表达式)?
我正在尝试从HOP获取此Iterator代码:
# code from HOP p.156
sub make_rand {
my $seed = shift || (time & 0x7fff);
return Iterator
{ $seed = (29*$seed+11111) & 0x7fff;
return $seed;
}
}
# code adapted from HOP p.157
my $rng = make_rand(1);
while (<>) {
# my $random = NEXTVAL($rng); # original code from HOP, adapted as next line
my $random = $rng->(); # this treats $rng as a number, not as a ref to a sub
print "\nrandom=$random";
}
Run Code Online (Sandbox Code Playgroud)
如上所述,$ rng作为Number返回,而不是Iterator的ref,因此当我尝试取消引用它时,它会在倒数第二行中出错.
我应该为NEXTVAL使用不同的表格吗? …
我正在尝试构建一个熊猫系列来连接到数据帧上。
import numpy as np
import pandas as pd
rawData = pd.read_csv(input, header=1) # the DataFrame
strikes = pd.Series() # the empty Series
for i, row in rawData.iterrows():
sym = rawData.loc[i,'Symbol']
strike = float(sym[-6:])/1000
strikes = strikes.set_value(i, strike)
print("at26: ",strikes.values)
Run Code Online (Sandbox Code Playgroud)
该程序有效,但我收到错误消息:
“第 25 行:FutureWarning:set_value 已弃用,将在未来版本中删除。请改用 .at[] 或 .iat[] 访问器。”
我尝试以任何方式替换 .at 时,都会出现语法错误。发布的许多建议与 DataFrames 相关,而不是 Series。Append 需要另一个系列,当我给它一个标量时会抱怨。
什么是正确的方法呢?
我正在尝试理解高阶Perl的平面文件数据库.
在包含FlatDB,sub new,第141页,他有以下声明:
保佑{FH => $跳频,栏=>\@field,FIELDNUM => \%fieldnum,FIELDSEP => $ FIELDSEP} => $类;
其中$ class == FlatDB.
没有符号的这些变量(FH,FIELDNUM等)是什么?如何打印其值,查找其类型或使用它们?
FlatDB似乎是哈希的某种哈希值,但我打印值的所有尝试都会导致错误,例如:
printhash(\%fieldnum,"at37:\\%fieldnum=");
# prints the hash properly, BUT
printhash(FlatDB{FIELDNUM),"at38:FlatDB{FIELDNUM}=");
printhash(FlatDB->FIELDNUM,"at39:FlatDB->FIELDNUM=");
# print the error:
# Can't locate object method "FIELDNUM" via package "FlatDB"
Run Code Online (Sandbox Code Playgroud)
为什么它认为FIELDNUM是一种方法,当它被定义为哈希时?
仅供参考:printhash子是:
sub printhash
{ my $href=shift; # a REFERENCE to a hash
my $msg=shift; # a text message
my %h = %{$href};
my $len = keys %h;;
print "\n$msg, length=$len";
foreach my $k ( keys %h )
{ …Run Code Online (Sandbox Code Playgroud) 我试图理解在HOP的第158页上的imap例程的复杂执行路径.
这段代码有效
# code from rng-iterator.pl
sub make_rand {
my $seed = shift || (time & 0x7fff);
print "\nin make_rand, at6: seed=$seed";
return sub
{ $seed = (29*$seed+11111) & 0x7fff;
print "\nin make_rand sub, at9: seed=$seed";
return $seed;
}
}
# code adapted from HOP p.158, to make an iterator version of map
sub imap {
my ($transform, $it) = @_;
print "\nin imap, at17";
return sub
{ my $next = $it->();
print "\nin imap sub, at20, next=$next";
return unless …Run Code Online (Sandbox Code Playgroud) 我在win7上使用AS perl.
print `cd \\\\ `; # does nothing, says nothing
Run Code Online (Sandbox Code Playgroud)
与qx()相同
print `dir \\\\ `; # correctly prints the root directory
Run Code Online (Sandbox Code Playgroud)
其他命令似乎也运行正常.
cd从批处理文件的命令行正常工作.
有没有人见过这个?有解决方法吗?