玩转Json一个帅气的boy,你可以叫我**loVe**
⌨个人主页:l。Ve的个人主页
如果对你有帮助的话希望三连支持一下博主
1、了解一下json函数2、观察json文档3 代码汇总4 总结
1、了解一下json函数
| 函数 | 作用 |
|---|---|
| json.dump | 将Python对象写入json文件 |
| json.dumps | 将Python对象转换成json字符串 |
| json.load | 从一个文件读取JSON类型的数据,然后转换成Python字典 |
| json.loads | 将 json数据中的str 或 unicode 实例转换成字典 |
2、观察json文档
首先打开需要转化的json文档
{"com_province":"广西","com_address":"广西怡和花园门面房","com_scope":"许可经营项目:无 一般经营项目:中药材、中成药、中药饮片、化学药制剂、生化药品、生物制品、抗生素、保健品、普通诊查器械、物理治疗及康复设备、中医器械、医用卫生材料及辅料、医用高分子材料及制品的销售、预包装食品、乳制品(不含婴幼儿配方乳粉)、保健品的批发、保健食品、化妆品、卫生用品的销售。","com_industry":"F","com_city":"桂林市","com_register_time":"2018-6-10 00:00:00","id":10670,"com_county":"桂林市林昌县","com_name":"连锁有限责任公司第33药店"}
分析一下,需要的是省份、具体地址、日期、id、位置,也就是我们要从com_province、com_address、com_register_time、id、com_county入手
代码第一步导入数据
import json
f = open("json/one.json",'r',encoding='utf-8')
length = 0#记录计算了多少条数据
接下来读取数据每一行,每一行以字典形式读取,筛选出所需内容,并保存到新的.txt文件中
for line in f.readlines():
length += 1
dic = json.loads(line)
t = dic['com_province'],dic['com_address'],dic['com_register_time'],dic['id'],dic['com_county']
f = open("out/data.txt",'a',encoding='utf-8')
f.writelines(str(t));f.write("n")
最后写入改变length跳数据,别忘了加上文件关闭代码哦
f.write(str(length)) f.close()
结果:
但是这种情况是不能用json.load(fp),因为JSONDecodeError: Extra data–>括号不匹配!
因为json格式正常情况下应该如下才可以正常用json.load(fp)输出,
[
{
"name":"flten",
"category":"com",
"count":1,
"location":"北京",
"time":"2020-7-2"
},
{
"name":"flten",
"category":"com",
"count":1,
"location":"山东",
"time":"2020-7-2"
}
]
因为json.load是读取文件属性的,所以操作应该为
with open(filename,'r',encoding='utf8') as file_obj:
datas = json.load(file_obj)
3 代码汇总
json.load函数:
import json
f = open("json/one.json",'r',encoding='utf-8')
length = 0
for line in f.readlines():
length += 1
dic = json.loads(line)
t = dic['com_province'],dic['com_address'],dic['com_register_time'],dic['id'],dic['com_city']
f = open("out/data.txt",'a',encoding='utf-8')
f.writelines(str(t));f.write("n")
f.write(str(length))
f.close()
json.loads函数:
import json
filename = ('json/two.json')
with open(filename,'r',encoding='utf8') as file_obj:
datas = json.load(file_obj)
length = 0
for data in datas:
length += 1
dic = data
t = dic['name'],dic['count'],dic['location'],dic['time']
f = open("out/data1.txt",'a',encoding='utf-8')
f.writelines(str(t));f.write("n")
f.write(str(length))
f.close()
4 总结
总的来说json转txt格式并不困难,只是需要判断使用哪个函数,同时找到所需内容,一步步分析即可完成转换,附上Json格式默认情况下在解码中执行以下翻译(本文以object->dict为主):
(第二个其实是数组哦,用array->list也是可以的!可以自行思考一下哦。)
明天我们学习voc格式转yolo格式,我们不见不散!



