【发布时间】:2016-03-14 16:41:43
【问题描述】:
我生成了一个大的嵌套字典,然后将其保存为 json,然后我尝试加载它(以便我可以将更多数据附加到 json)。但是,我在以下代码行中经常遇到错误:
# to save
with open(json_path,'w') as f:
json.dump(data, f, indent=3, sort_keys=True)
# to load
with open(json_path,'r') as f:
data = json.load(f)
到目前为止我看到的错误:
ValueError:结束超出范围
ValueError: 期待对象 ...
ValueError:未终止的字符串...
但奇怪的是:如果我在异常后 pdb 并尝试再次加载 json,它每次都能正常工作!
【问题讨论】:
-
是否涉及多个进程?您的磁盘是否遇到过任何问题?您似乎遇到了不完整的读取(或写入未完成)。
-
@FrEaKmAn:这很令人惊讶,因为
json.dump()正在生成 JSON。 JSON 似乎不完整。 -
你在使用线程吗?
-
感谢Martijin,我意识到我正在使用线程,因此文件在另一个线程尝试打开它之前还没有完成写入。
-
然后使用锁来协调读写。你读得太早了。
标签: python json python-2.7 io