0
我在一個有數千行的巨大數據庫中發現了一個錯誤,所以我試圖刪除它們(顯然有一個備份文件)以鎖定問題,並且最終出現問題。我會在情況下提供沒有問題列表中的工作在數據庫中,你要比較:python json數據庫損壞
#Working
["#saelyth", 8, 40, 4, "000", "000", "0", 11, "!Bot, me lees?", "legionanimenet", 0, "primermensajitodeesapersona"]
#Not working
["!anon7002", 545, 3166, 7, "000", "000", "0", 13, "\u2014\u00a1 Hijo! Estas calificaciones merecen una golpiza. \u2014\u00bf Verdad que si mam ...Vamos que yo se donde vive la maestra.", "legionanimenet", 0, "primermensajitodeesapersona"]
導致此錯誤:
ValueError: Extra data: line 1 column 240 - line 2 column 1 (char 239 - 366)
我的問題是:什麼是錯的呢?我不知道和所有的努力,以找到什麼是json給我這樣的錯誤的問題是不成功的。
所以我完全刪除該行並嘗試沒有該行加載完整的數據庫,但我現在也得到了新的錯誤:
ValueError: Expecting ',' delimiter: line 1 column 62 (char 61)
有這麼maaany和maaany和maaany記錄,如:
["tyjyu", 59, 302, 19, "000", "000", "0", 13, "holas", "legionanimenet", 0, "primermensajitodeesapersona"]
["inuyacha64", 15944, 79401, 3496, "000", "F00", "0", 16, "cuidence chau", "legionanimenet", 2, "primermensajitodeesapersona"]
["!anon3573", 24, 140, "1", "nada", "nada", "nada", "nada", "nada", "legionanimenet", 0, "primermensajitodeesapersona"]
["eldiaoscuro", 74, 446, 16, "603", "369", "4", 13, "nada", "legionanimenet", 0, "primermensajitodeesapersona"]
什麼將是一種有效的方式來找到失蹤,給我那個錯誤?如果可能的話,我想知道如果json獲得了最大數量的項目加載或類似的東西。
編輯 的代碼加載的信息是:
data = []
with open('listas\Estadisticas.txt', 'r+') as f:
for line in f:
data_line = json.loads(line)
if data_line[0] == user.name and data_line[9] == "legionanimenet":
data_line[1] = int(data_line[1])+int(palabrasdelafrase)
data_line[2] = int(data_line[2])+int(letrasdelafrase)
data_line[3] = int(data_line[3])+1
data_line[4] = user.nameColor
data_line[5] = user.fontColor
data_line[6] = user.fontFace
data_line[7] = user.fontSize
data_line[11] = data_line[8]
data_line[8] = message.body
data_line[9] = "legionanimenet"
data.append(data_line)
f.seek(0)
f.writelines(["%s\n" % json.dumps(i) for i in data])
f.truncate()
我希望有人能幫助我這一點。
EDIT2: Python版本3.3.2是IDLE
'print repr(data_line)''在加載之前。可能會給你提示什麼是錯誤的。 – nneonneo
不工作,順便使用python 3.3.2。我應該首先從模塊加載它嗎? – Saelyth
那麼,試試'print(repr(data_line))'。 – nneonneo