- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑 : 我似乎无法弄清楚如何正确地遍历这个对象。我相信我的索引不正确,因为错误指出空白文本与我拥有的日期时间转换格式不匹配。
以下是 之一的开头响应对象 ,它很长,所以我选择不包括整个内容。然而,在任何时候都没有违规行为,并继续遵循最初的模式。请帮助我了解如何访问并仅遍历日期和后续信息。
{u'Meta Data': {u'1. Information': u'Daily Prices (open, high, low, close) and Volumes',
u'2. Symbol': u'MSFT',
u'3. Last Refreshed': u'2018-07-06',
u'4. Output Size': u'Compact',
u'5. Time Zone': u'US/Eastern'},
u'Time Series (Daily)': {u'2018-02-13': {u'1. open': u'88.9300',
u'2. high': u'90.0000',
u'3. low': u'87.8000',
u'4. close': u'89.8300',
u'5. volume': u'26200053'},
u'2018-02-14': {u'1. open': u'88.5100',
u'2. high': u'90.9900',
u'3. low': u'88.4100',
u'4. close': u'90.8100',
u'5. volume': u'34314101'},
u'2018-02-15': {u'1. open': u'91.2100',
u'2. high': u'92.7200',
u'3. low': u'90.6200',
u'4. close': u'92.6600',
u'5. volume': u'27407914'},
dict
错误地,我尝试了很多东西,但我似乎无法得到它。我相信这是让这个程序运行的最后一个障碍。 (最后)
ValueError: time data '' does not match format '%Y-%b-%d'
import requests
import json
# Global Variables
url = "https://www.alphavantage.co/query"
function_type = "TIME_SERIES_DAILY"
api_key = "***********"
current_zero_time = ""
main_list = []
symbols = ["AAPL", "HPQ", "IBM", "AMZN", "MSFT", "GOOGL", "INTC", "CSCO", "ORCL", "OCOM"]
def get_data(symbol):
global api_key
global function_type
request_data = {"function": function_type,
"symbol": symbol,
"apikey": api_key}
data_dict = requests.get(url, params=request_data)
return data_dict
def date_dif(date0, date1):
from datetime import datetime
d0_obj = datetime.strptime(date0, '%Y-%b-%d')
d1_obj = datetime.strptime(date1, '%Y-%b-&d')
return (d1_obj - d0_obj).days
def iterate_data(symbol):
data_set = get_data(symbol)
data_set = json.loads(data_set.text)
global current_zero_time
list_size = 0
this_list = [list_size + 1]
for p_date in data_set['Time Series (Daily)']:
if current_zero_time is None:
current_zero_time = p_date
this_list[list_size] = 0
else:
t = date_dif(current_zero_time, p_date)
this_list[list_size] = t
list_size += list_size
for key in p_date:
this_list[list_size] = p_date[key]
list_size += list_size
return this_list
def make_list(stocks):
global main_list
for i in range(len(stocks)):
this_list = iterate_data(symbols[i])
main_list = main_list + this_list
make_list(symbols)
print(main_list)
最佳答案
这对评论来说有点太多了。请记住,我们应该注意从中制作有用的问题/答案对,以使任何 future 的读者受益。也许在合理的时候(现在?),我们关闭代码和相应问题的迭代并开始一个新的。
到目前为止,我们已经介绍了 requests.get()
返回 Response
目的。要获取请求读取的内容,我们需要访问它的text
属性。此文本如果是 JSON 表示,可以使用 json.loads()
进行解析.
现在对于当前出现的问题,您已经定义了一个变量 current_zero_time
成为 ""
, 但首先调用 iterate_data()
将评估 current_zero_time is None
在你的条件是False
(事实并非如此)。也许你想说if not current_zero_time: ...
?因此,你和向上调用 date_dif()
第一个参数是 ""
(空字符串)strptime
无法解析到时间 (-> ValueError
)。
说到strptime
.该格式字符串似乎与您的(ISO 格式)日期不匹配。应该是 "%Y-%m-%d"
(将 b
: 月份名称替换为 m
: 月份编号)。第二行也有错字&d
, 而它应该是 %d
.你会遇到这些作为第三和第四个问题。
旁注:global
变量(为了简单起见)是“邪恶的”,最好尽可能避免(事实证明这几乎总是如此),或者除非你有一个非常好的理由使用它们(坦率地说,你很少应该有)。它们打破了对范围的普遍理解,最终可能成为人们在访问它们时没想到的东西。切中要害。如果你已经完成了 iterate_data()
对于 symbol
并为下一个再次调用它。下一次传递的初始值将是上一次传递的最后一个值。
以上信息应该可以解决您当前遇到的问题,并让您遇到下一个问题。这是哪一行:
for key in p_date:
this_list[list_size] = p_date[key]
key
这里将是来自
"2"
的字符(例如,在第一次迭代中的
pdate
) .这不是
p_date
的有效索引(一个
str
)。不幸的是,我不确定结果列表(或一般的输出)应该是什么样子,因此我只能为下一步提供有限的输入。我的意思是这样的:
for key in p_date:
this_list[list_size] = key
p_date
中的字符并将它们作为值分配给
this_list[list_size]
;以及更改
None
/
""
不匹配和修复这对夫妇
strptime
问题。您可以让脚本完成执行而不会失败......但如上所述,可能仍然没有做它应该做的事情。
ValueError
)或只是为了四处寻找时所处的状态。您可以在调试器中运行它。而不是调用你的脚本
python ./script.py
(或只是
./script.py
),使用
python -m pdb ./script.py
.你可以运行你的程序,单步执行,检查堆栈帧,给定时间的变量值...类型
help
寻求基本帮助和
help COMNAND
获取有关命令的更多信息。
global
变量之上)关于风格。所有导入通常在脚本/模块的顶部处理。事实上,
PEP-8 中有风格推荐。还有一些有用的工具,如
pylint检查您的代码。我提到这一点,因为只要稍微清理一下,一些错误和困惑几乎可以神奇地消失。 :)
u''
文字是 Python 2 的东西。
关于python - 将表示为嵌套dicts的几个 "Response"对象转换为python中的多维列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51228936/
所以我试图设置“内容”类的高度,但它似乎不起作用。我对嵌套 DIV 非常陌生,我已经尝试了我在谷歌搜索中发现的修复程序,但似乎没有任何效果。帮助?
好的,所以我一直在四处寻找,但找不到这个问题的答案。但是,我需要将一个 View 嵌套在另一个 View 中。 我有一个 $layout 正在使用我拥有的 default.layout Blade 文
好的,所以我一直在四处寻找,但找不到这个问题的答案。但是,我需要将一个 View 嵌套在另一个 View 中。 我有一个 $layout 正在使用我拥有的 default.layout Blade 文
基本上,我的问题很简单,但它需要知道 Struts 1.1 并且还活着的人。 我尝试构建的伪代码看起来像这样: IF element.method1 = true THEN IF element
我正在尝试将 Excel 嵌套 IF 语句转换为代码语言,但我不确定我是否正确执行此操作,希望能得到一些帮助 这是Excel语句: =IF(D3="Feather",IF(OR(I3>1000,R3=
如果我们创建两个或三个评论并对其进行多次回复,则“有用”链接在单击时会导致问题,它会对具有相同编号的索引执行 ng-click 操作,从而显示具有相同索引的所有文本。如何解决此嵌套问题,以便在单击链接
我在项目中使用Scala,想与Stripe集成,但它只提供Java API。例如,要创建 session ,我使用: val params = new util.HashMap[String, Any
以下代码有一个 Div,其中连续包含四个较小的 Div。四个 Div 中的每一个还包含一个较小的 Div,但此 Div 未显示。我尝试了各种显示和位置组合,看看 div 是否会出现。 classGoa
我在这里有一个问题,循环是: for (i=0; i < n; ++i) for (j = 3; j < n; ++j) { ...
我正在尝试编写代码来显示具有奇数宽度的形状。形状完成后,将其放置在外部形状内。用户将能够输入用于形状的字符和行数。我希望生成一个形状,并通过 for 循环生成一个外部形状。 ***** .
$(".globalTabs").each(function(){ var $globalTabs = $(this); var parent = $globalTabs.parent
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
所以我在这个问题上遇到了一些麻烦,因为变量 i。我只是不确定在第二个 while 循环中如何处理它。对于我的外循环,我知道它将运行 log_4(n^2) 次迭代。对于内部 while 循环,我计算的迭
我似乎找不到在枚举上应用多个 if/then 逻辑的工作方式。 anyOf 不应用条件逻辑,而是表示如果其中任何一个匹配则很好。 allOf 再次不应用条件逻辑,而是测试属性/必填字段的超集。 这是一
如何访问 ReaderT 的内部 monad。 在我的例子中,我有类型: newtype VCSSetupAction a = VCSSetupAction (ReaderT (Maybe VCSCo
这个问题在这里已经有了答案: Add leading zeroes/0's to existing Excel values to certain length (7 个回答) 7年前关闭。 我正在寻
我已经绑定(bind)了很多 AND/OR 函数的组合并且没有运气。 这是我需要创建的: 在 B 列中,我有公司 ID,范围从两个数字字符到六个数字字符。 我需要在 B 列中的每个公司 ID 之前的每
我是 VBA 新手,在尝试编写的宏中使用 If 语句时遇到了一些困难。每个月我都会收到一份 Excel 报告,其中列出了我们公司的哪些员工执行了某些任务。我正在编写的宏旨在将每个员工的数据复制并粘贴到
如果在 B 列中找到单元格 A1 中的值,则使用文本 321 填充除非在 C 列中找到单元格 A1 中的值,在这种情况下填充文本 121反而。如果单元格 A1 的内容不在 B 列或 C 列中,则使用
我有几十万个地址。其中一些在整数之后有粒子。如 4356 A Horse Avenue , 其他格式正常4358 Horse Avenue .有些有“A”,有些有“B”。我正在尝试删除整数和粒子之间的
我是一名优秀的程序员,十分优秀!