安装好python之后自带的就有一个json解析库
使用 JSON 函数需要导入 json 库:import json。
json.dumps | 将 Python 对象编码成 JSON 字符串 |
json.loads | 将已编码的 JSON 字符串解码为 Python 对象 |
但是有时我们会遇到不是很标准的JSON,这是这个库就无法解析了。例如:
{0:"000001_Unit_1. Hi,Birdie.mp3",1:"000005_Unit_2. Good morning,Miss Wang..mp3",2:"000008_Unit_3. What's your name_.mp3"}
细心的朋友会看出来这里 “键”没有引号 只有“值”有引号。
那么怎么办呢,这时我们就可以使用 demjson来解析
安装:
pip install demjson
encode | 将 Python 对象编码成 JSON 字符串 |
decode | 将已编码的 JSON 字符串解码为 Python 对象 |
但是值得注意的是 demjson 和 json 在将json对象转python对象时 中文会变成 unicode 格式。这对以后的数据处理造成很多不必要的麻烦。
例如:
"\u5c71\u6d77\u5e08"
在你按条件查询这个字段的时候就会发现查找不到。
处理方法就是要将字典中的中文正确的输出,可以将list转换成json字符串,转换时使用
json.dumps(d, ensure_ascii=False, encoding='utf-8'))
参数ensure_ascii=False不能少, encoding可以省略,因为默认就是encoding='utf-8'