Python 将数据写入 json 错误:"Cannot read property 'indexOf' of null"



这是我用来尝试将列表附加到JSON文件的测试程序。实际的主程序将不断地将同一列表附加在其JSON文件中。在这里,我通过尝试附加列表的5个实例来对其进行测试。我一直在尝试运行它时会遇到错误"无法读取属性'indexof'。

我尝试使用print(mapping)查看其失败的位置,并且从未执行该命令。我不确定这只是我的代码还是其他内容,但是该程序根本不运行。当使用VSCODE的调试器时,我会得到" null的属性'indexof'的属性'索引',并且该程序似乎完全冻结,而从终端运行时没有输出。

import json as js
import numpy as np
from os import time
resolution = 200 # Map resolution: Max = 200
step = [None for _ in range(resolution)] # Angle/Step list
dist = [None for _ in range(resolution)] # Distance list
mapping = [step, dist] # Mapping distances do steps/angles
print(mapping)
with open("test.json", "a") as test:
    ps.dumps(os.time(), test)
    for turn in range(5):
        for num in range(resolution):
            step[num] = num
            dist[num] = np.random()
            js.dumps(mapping, test)

当您在外部声明变量时,它不会像内容那样更改。尝试将mapping声明放入循环中,看看会发生什么。

另外做

js.dump(list(step[num], dist[num]), test)

编辑:似乎我错了。我现在测试了它,并在python3中得到了一些功能:

import json
import numpy
resolution = 200 # Map resolution: Max = 200
step = [None for _ in range(resolution)] # Angle/Step list
dist = [None for _ in range(resolution)] # Distance list
mapping = list()
with open("test.json", "a") as test:
    for turn in range(5):
        for num in range(resolution):
            step[num] = num
            dist[num] = numpy.random.random()
        mapping = [step, dist]
        json.dump(mapping, test)
        test.write(',n')

要注意的事情:

1. json.dump instead of json.dumps for writing into file
2. declared mapping as an empty list that gets declared after the loop
3. also write a ',n' to the json file to make it more readable

我将尽我所能在评论中尽可能多地提供帮助,对不起,最初的弱答案。

相关内容

最新更新