擅长:python、mysql、java
<p>修改的是内存中的数据结构,而不是文件本身。为了完全安全,请分四步进行:</p>
<ol>
<li>把文件读入内存</li>
<li>对数据结构进行更改</li>
<li>将更改写回<em>新</em>文件</li>
<li>写入成功完成后,用新文件替换旧文件。在</li>
</ol>
<p>把它放在一起</p>
<pre><code>import json
import tempfile
with open("test.json") as f:
data = json.loa(f)
data['apartments'][0]['2'][rooms] = 3
with tempfile.NamedTemporaryFile(delete=False) as f:
json.dump(data, f)
os.rename(f.name, "test.json")
</code></pre>
<p>这假设您的临时目录与JSON文件位于同一文件系统中,因此<code>rename</code>操作是原子操作。如果不是这样,请使用<code>dir</code>参数<code>NamedTempfile</code>来指定一个<em>在同一文件系统上的</em>目录。在</p>