孔记 發表於 2019-12-13 10:20:00

python读取json文件

<p><span style="font-size: 18pt">本篇内容主要写python读取json文件的方式;</span></p>
<p><span style="font-size: 14pt">JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。</span></p>
<p><span style="font-size: 14pt">json的文件格式:使用大括号来区分表示并存储数据;</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/1857864/201912/1857864-20191213100825972-1576281307.png" alt="" width="1042" height="142"></span></p>
<p><span style="font-size: 14pt">&nbsp;python操作json文件通过了两种方法:load():用于读取json文件;dump():用于写入json文件</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 读取json文件内容,返回字典格式</span>
with open(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./source_file/info.json</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">'</span>,encoding=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">utf8</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)as fp:
    json_data </span>=<span style="color: rgba(0, 0, 0, 1)"> json.load(fp)
    </span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">这是文件中的json数据:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,json_data)
    </span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">这是读取到文件数据的数据类型:</span><span style="color: rgba(128, 0, 0, 1)">'</span>, type(json_data))</pre>
</div>
<p><img src="https://img2018.cnblogs.com/i-beta/1857864/201912/1857864-20191213101117241-1471203447.png" alt="" width="1041" height="65"></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 将字典数据写入到json文件中</span>
dict1 = {<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">name</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">张三</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">age</span><span style="color: rgba(128, 0, 0, 1)">'</span>: 18, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">sex</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">男</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">}
with open(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./source_file/info.json</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">a</span><span style="color: rgba(128, 0, 0, 1)">'</span>,encoding=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">utf8</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)as fp:
    json.dump(dict1,fp,ensure_ascii</span>=False)  </pre>
<pre> #如果ensure_ascii ' '为false,则返回值可以包含非ascii值</pre>
</div>
<p><span style="font-size: 14pt">python除了提供json文件的操作还提供了对于json格式转换的方法;loads() :将json字符串转换成字典格式;dumps()&nbsp;将字典格式数据转换成json格式;</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 将json字符串转换成字典格式</span>
str1 = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">{"name": "张三", "age": 18, "sex": "男"}</span><span style="color: rgba(128, 0, 0, 1)">'</span>
<span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">这是转换后的数据:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,json.loads(str1))
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">这是转换后的数据类型:</span><span style="color: rgba(128, 0, 0, 1)">'</span>,type(json.loads(str1)))</pre>
</div>
<p><img src="https://img2018.cnblogs.com/i-beta/1857864/201912/1857864-20191213101803764-727334280.png" alt="" width="1039" height="66"></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 将字典格式数据转换成json格式</span>
dict1 = {<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">name</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">张三</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">age</span><span style="color: rgba(128, 0, 0, 1)">'</span>: 18, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">sex</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">男</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">这是将字典转换之后的数据:</span><span style="color: rgba(128, 0, 0, 1)">'</span>,json.dumps(dict1,ensure_ascii=<span style="color: rgba(0, 0, 0, 1)">False))
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">这是将字典转换之后的数据类型:</span><span style="color: rgba(128, 0, 0, 1)">'</span>,type(json.dumps(dict1,ensure_ascii=False))) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">如果ensure_ascii ' '为false,则返回值可以包含非ascii值</span></pre>
</div>
<p><img src="https://img2018.cnblogs.com/i-beta/1857864/201912/1857864-20191213101859883-2003749179.png" alt="" width="1039" height="70"></p><br><br>
来源:https://www.cnblogs.com/XhyTechnologyShare/p/12033690.html
頁: [1]
查看完整版本: python读取json文件