• python操作json文件:读取、写入、追加、删除、excel转json、json转excel


    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)
  • 相关阅读:
    前端设计网站收藏
    JAVA的StringBuffer类
    JDBC连接数据库
    JSP中request属性的用法
    jquery学习
    servlet学习(一)
    javascript 计算器
    xml学习(一)
    网站之单点登录简单思路
    关于ASP.NET中Menu控件在浏览器中不正常显示解决方法
  • 原文地址:https://www.cnblogs.com/ttj57/p/13590310.html
Copyright © 2020-2023  润新知