我无法处理二维数组。 我写了
[['America', 'America', 'America', 'America', 'America'], ['', '', 'u1000', '500~1000', 'd500'], ['NY', 'City A', '×', '×', '×'], ['NY', 'City B', '×', '×', '×'], ['NY', 'City C', '×', '×', '×'], ['NY', 'City D', '×', '×', '×'], ['NY', 'City E', '×', '×', '×']]
在print(fourrows_transpose)中,显示
city.name = fourrows_transpose[i][1]
现在发生错误:
IndexError:列表索引超出范围。
Traceback说:
fourrows_transpose
错了。但我认为fourrows_transpose[2][1]
是二维数组,所以我真的无法理解为什么我无法访问Postgres
。怎么了?我该如何解决这个问题?
答案 0 :(得分:0)
你可以尝试简单的构造:
for transpose in fourrows_transpose[2:]:
city.name = transpose[1]
city.save()
print(transpose[1])
price_u1000.name = transpose[2]
price_u1000.save()
print(transpose[2])
price_500_1000.name = transpose[3]
price_500_1000.save()
print(transpose[3])
答案 1 :(得分:0)
for i in range(2,len(fourrows_transpose)):
^^^^^^^^^^^^^^^^^^^^^^^
# ...
假设你有一个数组arrayNumbers = {0,1,2,3,4}
该数组有5个元素(= len(arrayNumbers)
),但最大值。 index是4.在这种情况下,你的循环会说:"从索引2运行到索引5。"因此,循环的最后一次运行会尝试访问不存在的arrayNumbers[5]
。
所以,你需要减少你的最大值。 for
循环中的索引值为1。
答案 2 :(得分:0)
Actual problem is here.
city = City.objects.create(name="city", prefecture=pref)
price_u1000 = Price.upper1000.objects.get(city=city)
price_500_1000 =Price.from500to1000.objects.get(city=city)
price_u500 = Price.under500.objects.get(city=city)
here you will have to filter data as you done like
area = Area.objects.filter(name="America").first()
答案 3 :(得分:-1)
因为在你的代码中你有:
for i in range(2,len(fourrows_transpose)):
尝试:
for i in range(0,len(fourrows_transpose)-1):