<p>Python附带一个<a href="https://docs.python.org/2.7/library/json.html" rel="nofollow">json</a>库。
通过这个库,您可以读写JSON文件(或JSON字符串)。
解析的数据被转换成Python对象,反之亦然。在</p>
<p>要使用<code>json</code>库,只需导入它:</p>
<pre><code>import json
</code></pre>
<p>假设您的数据存储在<code>input_data.json</code>文件中。在</p>
^{pr2}$
<p>你这样读文件:</p>
<pre><code>import io
with io.open(input_data_path, mode="rb") as fd:
obj = json.load(fd)
</code></pre>
<p>或者,或者:</p>
<pre><code>with io.open(input_data_path, mode="rb") as fd:
content = fd.read()
obj = json.loads(content)
</code></pre>
<p>您的数据会自动转换为Python对象,在这里您将得到一个<code>dict</code>:</p>
<pre><code>print(repr(obj))
# {u'projectdir': u'D:\\Outgoing\\1622_2\\',
# u'normaldir': u'D:\\Outgoing\\1621_1\\'}
</code></pre>
<p><em>注意:我使用的是python2.7,所以您可以得到前缀为“u”的unicode字符串,比如<code>u'projectdir'</code>。</em></p>
<p>现在很容易更改<code>normaldir</code>和<code>projectdir</code>的值:</p>
<pre><code>obj["normaldir"] = "X:\\Incoming\\1621_1\\"
obj["projectdir"] = "X:\\Incoming\\1622_2\\"
</code></pre>
<p>由于<code>obj</code>是<code>dict</code>,您还可以使用<code>update</code>方法,如下所示:</p>
<pre><code>obj.update({'normaldir': "X:\\Incoming\\1621_1\\",
'projectdir': "X:\\Incoming\\1622_2\\"})
</code></pre>
<p>这样,您就可以使用类似JSON的语法。在</p>
<p>最后,您可以将Python对象写回JSON文件:</p>
<pre><code>output_data_path = "output_data.json"
with io.open(output_data_path, mode="wb") as fd:
json.dump(obj, fd)
</code></pre>
<p>或者,也可以使用缩进:</p>
<pre><code>content = json.dumps(obj, indent=True)
with io.open(output_data_path, mode="wb") as fd:
fd.write(content)
</code></pre>
<p><em>备注:使用缓冲区(变量<code>content</code>)读/写JSON对象更快。</em></p>