【问题标题】:passing two lists in third party API function在第三方 API 函数中传递两个列表
【发布时间】:2018-11-13 19:40:23
【问题描述】:

我被这个问题困扰了很多天。

 a = pd.date_range(start= '02/02/2017', end='06/02/2018', freq = 'D')
 c = a.format(formatter=lambda x: x.strftime('%Y-%m-%d'))

    for date_to in c:
        date_to= date_to
        print("date_to has been picked up")
        b = pd.date_range(start= '02/01/2017', end='06/2/2018', freq = 'D')
        d = b.format(formatter=lambda x: x.strftime('%Y-%m-%d'))
        for date_from in d:
            date_from= date_from
            print('date_from has been picked up')
            df = ek.get_news_headlines('R:AAPL.O AND Language:LEN', date_from = date_from , date_to = date_to, count=100)

这是我为从第三方 API 中提取新闻而编写的上述代码(在最后一行代码中)我面临的问题是,在最后一行中,我必须提供 date_from 和 date_to 来提供日期范围提取数据。现在我想每次都自动更改日期范围,就像我们在循环中所做的那样。最后一个循环“date_from”正在工作,但第一个循环没有提供“date_to”。提前感谢您的合作

【问题讨论】:

  • “不提供”是什么意思?您意识到您当前构建循环的方式意味着您将运行每个 date_from 一次,其中 date_to 为“02/02/2017”,然后再次使用 date_to 作为“03/02/2017”,依此类推第四 - 这是故意的吗?
  • 是的,这是故意的,因为 API 日期中的日期总是倒退。注意提供意味着该日期不会改变。只有一次日期到来,然后只有第二个循环日期发生变化,但我希望他们同时更改和编译数据
  • 那么您能否描述一下您正在寻找什么作为输出以及您目前正在得到什么?
  • 在输出中 date_from 的变化类似于“03 feb 17, 02 feb 17, 1 feb 17”,这满足了一个 Kwag 但“date_to”在 17 年 2 月 2 日是静态的,但我也希望它改变与第二个日期平行,以便可以按顺序编译日期而无需重复
  • dc 的日期数不同(也就是说,len(d) != len(c) - 如果您希望它们一起移动,那么当其中之一发生时您希望发生什么列表已用完未处理的日期,但另一个列表仍有未处理的日期?

标签: python python-3.x thomson-reuters-eikon


【解决方案1】:

您的问题有点不清楚,但我认为这是您想要实现的目标 - 同时获取一对日期并移动到下一对(n 次迭代),而不是两个嵌套的 for 循环(n2 迭代):

#Create date lists first
a = pd.date_range(start= '02/02/2017', end='06/02/2018', freq = 'D')
b = pd.date_range(start= '02/01/2017', end='06/2/2018', freq = 'D')
c = a.format(formatter=lambda x: x.strftime('%Y-%m-%d'))
d = b.format(formatter=lambda x: x.strftime('%Y-%m-%d'))

# Single for loop iterating over pairs of elements of c,d
for date_to,date_from in zip(c,d): 
    print("date_to has been picked up")
    print('date_from has been picked up')
    df = ek.get_news_headlines('R:AAPL.O AND Language:LEN', date_from = date_from , date_to = date_to, count=100)

您可能想了解zip() 的工作原理:

https://docs.python.org/3.4/library/functions.html#zip

【讨论】:

    猜你喜欢
    • 2017-06-06
    • 2019-05-02
    • 2016-06-17
    • 1970-01-01
    • 2018-03-23
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多