.csv 데이터를 파이썬으로 보내려고합니다.값을 할당 할 때 KeyError가 발생했습니다.
이 내 코드는 모습입니다 :
import csv
revenue = {}
prices = []
for i in range(1,21):
prices.append(i)
prices = tuple(prices) #convert to tuple to make immutable and faster
with open("test.csv") as file_handle:
file_reader = csv.reader(file_handle)
file_handle.readline()
file_handle.readline() #skip first 2 lines due to column header titles
for row in file_reader:
revenue[prices] = row[1] #assign revenue at each price-point
print revenue
print revenue[10]
이것은 .CSV 데이터의 모양, 또는 내 입력 것입니다.
0.01 1397371
0.02 1350610
0.03 1306431
0.04 1136959
0.05 1106950
0.06 1064727
0.07 1037497
0.08 1030768
0.09 976552
0.1 963091
0.11 949641
0.12 917551
0.13 884734
0.14 878675
0.15 775261
0.16 765643
0.17 756057
0.18 733458
0.19 723077
0.2 654178
첫 번째 열은 가격이고 두 번째 열은 수익입니다. 필자가 선택한 가격은 항상 같기 때문에 실제로 데이터를 무시하고 간단히 정수형 가격 목록을 만들었습니다.이 목록을 튜플로 변환했습니다 (데이터가 불변 인 경우 튜플이 더 신속하게 처리된다는 것을 알기 때문에) .
문제 : 나는 수익을 인쇄하는 경우 [10] 내가 대신 내가 할 963091.보고 싶어 KeyError를 : 20
내가 수익을 인쇄 할 때, 나는 모든 가격과 관련된 수익 대신, 인쇄 할 것으로 예상, I (0.2), 654178의 마지막 가격에 대한 최종 수익 값이 표시됩니다.
나는 신참자의 질문에 사과를하기에 새로운데, 나는 읽고 노력하고 있습니다. 이것을 파악하고 여전히 고민 중입니다. 내 접근 방식에 대한 조언도 환영 받고, 내가 얻을 수있는 모든 도움을 사용할 수 있습니다.
미리 감사드립니다.
'revenue'가 사전이며,이 값이 10 당신이 찾고있는 것을 기반으로하는 키를 포함하지 않습니다
또한, 가격을 튜플을 구성하는 짧은 방법이 'revenue = []'을 사용하고 나중에'revenue.append (row [1])'을 사용하면된다. – linuxfan
'10 '을 사용할 때'Keyerror'는 어떻게'20'이 될 수 있는가? –
에서 실제 추적을 추가하십시오. 전체'prices' 튜플을 키로 사용하고 있습니다. 그것은 당신의 사전에있는 단지 하나의 열쇠입니다. –