0

我在一个包含数千行的大型数据库中遇到了一个错误,所以我试图删除数千行(显然有一个备份文件)以锁定问题,最终我遇到了问题。如果您想比较,我将在数据库中提供一个没有问题的工作列表:

#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"]

什么是 FIND the missing 的有效方法,给我那个错误?如果可能的话,我还想知道 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

4

1 回答 1

0
print(repr(data_line))

在加载文件之前将打印它直到找到错误。我为此感谢@nneonneo

于 2013-09-24T05:33:43.333 回答