ttj57
import json

class GetJsonData:
def json_data(self, *json_file):
\'\'\'
:description:获取json文件数据
:param json_file: 输入json文件名,默认为ranzidata.json
:return: 返回数据类型为dict
\'\'\'
if len(json_file) == 1:
part_path = \'ranzi/ranzi_config/\' + str(json_file[0])
file_path = GetPath().get_path(part_path)
else:
file_path = GetPath().get_path(\'ranzi/ranzi_config/ranzidata.json\')
#读取json文件
with open(file_path, mode=\'r\', encoding=\'utf-8\') as jf:
jd = json.load(jf)
return jd

def excel_to_json(self, excel_file_path, sheet_name, key_name):
\'\'\'
:description:将excel数据转化成json文件数据格式输出
:param excel_file_path: excel文件路径
:param sheet_name: 工作表名
:param key_name: 定义键值
:return:
\'\'\'
wb = openpyxl.load_workbook(excel_file_path)
get_sheet = wb[sheet_name]
list_tmp = []
list_data = []
stat = True
json_data = {}
for get_row in get_sheet:
if stat:
stat = False
continue
for get_cell in get_row:
list_tmp.append(str(get_cell.value))
list_data.append(list_tmp)
list_tmp = []
json_data[key_name] = list_data
return json_data

def json_to_excel(self, json_file, excel_path):
wb = Workbook()
data = self.json_data(json_file)
k = data.keys()
for sheet_name in k:
try:
wb.remove(sheet_name) # 如表已存在则移除工作表
except:
pass
wb.create_sheet(sheet_name, 0)#创建表
ws = wb[sheet_name]#操作指定表
sheet_data = data[sheet_name]#获取表要写入的数据
for t in range(1, len(sheet_data) + 1): # 遍历要写入的行数
i = 65 # ASCII码\'65\'表示\'A\'
for j in range(1, len(sheet_data[t - 1]) + 1): # 遍历每行要写入的数量
ws[\'%s%d\' % (chr(i), t)] = sheet_data[t - 1][j - 1]
i += 1
wb.save(excel_path)

def json_update(self, dict_new, *json_file):
if len(json_file) == 1:
part_path = \'ranzi/ranzi_config/\' + str(json_file[0])
file_path = GetPath().get_path(part_path)
else:
file_path = GetPath().get_path(\'ranzi/ranzi_config/ranzidata.json\')
json_data = self.json_data()
json_data.update(dict_new)
with open(file_path, mode=\'w\', encoding=\'utf-8\') as jf:
json.dump(json_data, jf, indent=2, sort_keys=True, ensure_ascii=False)

def json_del(self, key, *json_file):
if len(json_file) == 1:
part_path = \'ranzi/ranzi_config/\' + str(json_file)
file_path = GetPath().get_path(part_path)
else:
file_path = GetPath().get_path(\'ranzi/ranzi_config/ranzidata.json\')
json_dict = self.json_data(file_path)
json_data = json_dict.pop(key)
print(json_data, \'delete success\')
with open(file_path, mode=\'w\', encoding=\'utf-8\') as jf:
json.dump(json_dict, jf, indent=2, sort_keys=True, ensure_ascii=False)

分类:

技术点:

相关文章: