使用字典定义时的键错误

时间:2014-03-15 20:17:41

标签: python

我使用以下代码生成密钥错误(1,2),我不确定原因:

import concurrent.futures
import urllib.request
import json


myurls2 = {}
for x in range(1, 15):
    for y in range(1, 87):

        strvar1 = "%s" % (x)
        strvar2 = "%s" % (y)

        with open("C:\\Python33\\NASDAQ Stock Strings\\NASDAQ_Config_File_{}_{}.txt".format(x,y),"r") as f:
            myurls2[x,y] = f.read().replace('\n', '')            
            #print("myurls_" + str(strvar1) + "_" + str(strvar2) + "=", myurls2[x,y])
            #print(myurls2[x,y])

            URLS = [myurls2[1,1],myurls2[1,2],myurls2[1,3],myurls2[1,4],myurls2[1,5]]

当取消注释'#print(myurls2 [x,y])'行时,你可以看到字典定义正确地迭代生成字典值的文本文件,但是不能引用字典键。 / p>

1 个答案:

答案 0 :(得分:2)

x=1y=1的第一次传递中,您只定义了myurls[1,1]。换句话说,您尚未定义myurls[1,2](或任何其他myurls)。

URLSfor x循环完成后,您确定不应该定义for y吗?

正如@ inspectorG4dget所说,URLS可能需要在for循环范围之外进行去除。