Python 遍历字典以创建列表

Python 遍历字典以创建列表,python,list,dictionary,Python,List,Dictionary,我有一个字典,我想用它从网站上获取数据,然后在字典中为每个键存储一个单独的值,数据来自相应的值。代码可以工作,但只返回字典中最后一个key:value对的数据,而不是所有的数据。我错过了什么 import csv import requests URL = {'Nov18': 'https://markets.cboe.com/us/futures/market_statistics/historical_data/products/csv/VX/2018-11-21', 'De

我有一个字典,我想用它从网站上获取数据,然后在字典中为每个键存储一个单独的值,数据来自相应的值。代码可以工作,但只返回字典中最后一个key:value对的数据,而不是所有的数据。我错过了什么

import csv
import requests

URL = {'Nov18': 'https://markets.cboe.com/us/futures/market_statistics/historical_data/products/csv/VX/2018-11-21',
       'Dec18': 'https://markets.cboe.com/us/futures/market_statistics/historical_data/products/csv/VX/2018-12-19'}

for tenors, links in URL.items():
    with requests.Session() as s:
        download = s.get(links)

        decoded_content = download.content.decode('utf-8')

        cr = csv.reader(decoded_content.splitlines(), delimiter=',')
        tenors = list(cr)


您已重写变量“tenors”。尝试定义另一个变量,如“日期”,您将得到以下结果:

import csv
import requests

URL = {'Nov18': 'https://markets.cboe.com/us/futures/market_statistics/historical_data/products/csv/VX/2018-11-21',
         'Dec18': 'https://markets.cboe.com/us/futures/market_statistics/historical_data/products/csv/VX/2018-12-19'}

tenors = []

for date, links in URL.items():
    with requests.Session() as s:
        download = s.get(links)

        decoded_content = download.content.decode('utf-8')

        cr = csv.reader(decoded_content.splitlines(), delimiter=',')
        tenors.append(list(cr))

所以有几件事不确定为什么变量被称为tenor而不是date,但它应该是单数的。链接也应该是singluar。以后可以使用字典按日期访问,否则日期信息将丢失

import csv
import requests

URL = {'Nov18': 'https://markets.cboe.com/us/futures/market_statistics/historical_data/products/csv/VX/2018-11-21',
     'Dec18': 'https://markets.cboe.com/us/futures/market_statistics/historical_data/products/csv/VX/2018-12-19'}

output = {}
for trade_date, link in URL.items():
    with requests.Session() as s:
        download = s.get(link)

        decoded_content = download.content.decode('utf-8')

        cr = csv.reader(decoded_content.splitlines(), delimiter=',')
        output[trade_date]= list(cr)

print(output['Nov18'])
print(output['Dec18'])

最好不要在循环中重新声明
tenor
变量。欢迎使用堆栈溢出!看看这本书。此脚本不输出任何内容,因此不清楚您期望的是什么。你需要做一个决定。缩进也是错误的,但是@funnydman建议进行编辑以修复它,您可以接受。
date
是一个错误的变量名,因为存在同名的模块。很可能您指的是
数据