python:json文件

按行读取json文件并取出单个元素

参考:http://www.jsphp.net/python/show-24-258-1.html

with open(filename, 'r') as f:
	for jsonstr in f.readlines(): # 按行读取json文件,每行为一个字符串
		data = json.loads(jsonstr) # 将字符串转化为列表            
		HoldTime = (data[0],data[3],data[6]) #取出列表中指定单个元素,这里取出了第1、4、7个,生成一个新的字符串
		with open(newfile, 'a') as f:         
			json.dump(HoldTime, f) # 将字符串写入新的json文件中(newfile需要提前定义)        
			f.write('\n') 

批量修改文件名称

"""
批量修改文件名称
并将对应文件名写入txt文件(不含后缀)
"""
import os

path = './val2017'  # 图像文件夹
path2 = r'./val2017.txt'  # txt文件路径
if os.path.exists(path2):
    os.remove(path2)
file2 = open(path2, 'w')

i = 1
# 对目录下的文件进行遍历
for file in os.listdir(path):
    # 判断是否是文件
    if os.path.isfile(os.path.join(path, file)):
        new_name = file.replace(file, "img_%d.jpg" % i)  # 遍历生成新文件名
        os.rename(os.path.join(path, file), os.path.join(path, new_name))  # 修改文件名
        html1 = file
        html2 = new_name
        html1 = html1.replace('.png', '')  # 删除后缀存入字符串
        html2 = html2.replace('.jpg', '')  # 删除后缀存入字符串
        file2.writelines(html1)
        file2.writelines(',' + html2)
        file2.write('\n')
        i += 1
# 结束
file2.close()

txt文件结果:
在这里插入图片描述

批量替换文件中的指定字符串

"""
批量替换文件中的指定字符串
"""

name_file = open("../val2017_name.txt", "r")  # 读取上述txt文件
in_file = open("instances_val2017.json", "r", encoding='utf-8')  # 需要替换的文件
out_file = open("val.json", "w")  # 生成新文件
lines1 = name_file.readlines()  # 逐行获取文件内容
lines2 = in_file.readlines()

for i in lines2:
	for m in lines1:
        m = m.split(",")  # 以,分割每一行文件的前后字符串,即将字符串“A,B”分割为“A”和“B”,单个字符串m变为字符串列表
        i = i.replace(m[0], m[1])  # 将A替换为B
    out_file.write(i)

in_file.close()
out_file.close()

删除文件中的换行符

"""
删除文件中的换行符
"""

file = open("val.json", "r", encoding='utf-8')
out_file = open("val1.json", "w")
lines = file.readlines()

n = 0
for i in lines:
    if n < 758:  # 删除换行符的最后一行行数
        i = i[:-1]  # 删除换行符
        out_file.write(i)  # 写入新文件
        n += 1

file.close()
out_file.close()

# 不限制行数
# file = open("train.json", "r", encoding='utf-8')
# out_file = open("train2017.json", "w")
# lines = file.readlines()
#
# n = 0
# for i in lines:
#     i = i[:-1]
#     out_file.write(i)
#
# file.close()
# out_file.close()

删除文件中的指定内容

"""
删除文件中的指定内容
只保留包含”img_“的所有{}内容
"""
in_file = open("val1.json", "r", encoding='utf-8')
out_file = open("val2.json", "w")
lines = in_file.readlines()

final = ""
for i in lines:
    i = i.split("},")  # 以{}为分类获取所有的{}内容
    for n in range(0, len(i)):
        i[n] += '}'  # 还原}符号
        if "img_" in i[n]:  # 只保留包含”img_“的所有{}内容
            # i[n] = i[n].replace(i[n], "")
            final = final + i[n] + ', '
out_file.write(final)

in_file.close()
out_file.close()

设断点查看JSON文件

import json

TRAIN_JSON_PATH = "train2017.json"
with open(TRAIN_JSON_PATH, encoding='utf-8') as f:
    train_json = json.load(f)
    print(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值