【发布时间】:2020-06-29 11:18:59
【问题描述】:
我正在尝试从 json 写入 csv,所以每个值(pH)都在不同的行中,但我不断得到
回溯(最近一次通话最后一次):
文件“C:/Users/User/PycharmProjects/Meslosana/getValues.py”,第 22 行,在
线[i][1] = pH
IndexError: 列表索引超出范围
我还将在同一行但不同的列中添加不同的值。
我的 csv 文件看起来像这样,它没有空行。
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
每次我运行我的代码时,它都会在底部创建一个空行。
这是我的代码
import json
import csv
file = 'LaukiGeojson/Zemdegas.geojson'
cord = []
with open(file) as f:
data = json.load(f)
i = 1
for feature in data['features']:
cord = feature['geometry']['coordinates'][0]
pH = feature['properties']['pH']
print(pH)
print(feature)
print(data)
# saglabaa
r = csv.reader(open('LaukiAnalizes/Zemdegas.csv'))
lines = list(r)
print(len(lines))
#lines[i][0] = 1
lines[i][1] = pH
#lines[i][2] = 1
#lines[i][3] = 1
#lines[i][4] = 1
i += 1
writer = csv.writer(open('LaukiAnalizes/Zemdegas.csv', 'w', newline=''))
writer.writerows(lines)
# saglabaa
r = csv.reader(open('LaukiAnalizes/Zemdegas.csv'))
lines = list(r)
lines[0][0] = 'ID'
lines[0][1] = 'pH'
lines[0][2] = 'P'
lines[0][3] = 'K'
lines[0][4] = 'Mg'
writer = csv.writer(open('LaukiAnalizes/Zemdegas.csv', 'w', newline=''))
writer.writerows(lines)
open('LaukiAnalizes/Zemdegas.csv').close()
【问题讨论】:
-
能否添加错误的完整回溯?
-
是什么让你如此确定
lines[i]甚至存在? -
变量 i 应该是 1-9 并且我的 csv 文件有 9 行
-
你从 i 开始 .... 每行递增一次 .... 在 python 中,我们从 0 计数到 len()-1 - 所以如果你有 9 行从索引 0 到 8 的列表。不是 9。
-
但即使 i 是 1 或 2 也会出错