def excel_to_json(): key_list=get_rows_value(0,1,rows_total+1) lan_list=get_col_value(0) del lan_list[0] # 删掉数值是Key的单元格 list=[]#list里面存放所有语言的键值对 for i in range(1,cols_total): list.append(dict(zip(key_list,get_rows_value(i,1,rows_total+1)))) dict_temp=dict(zip(lan_list,list)) for k, v in dict_temp.items(): filename=k+'.json' with open(filename, "w", encoding='utf-8') as f: json.dump({k: v},f,indent=2,ensure_ascii=False)
方法比较通用,读出excel里面的值,然后以两列合并成一个字典,然后将字典转换成Json
今天遇到的两个问题:
1.组合成字典后,字典遍历的问题。查了一些API,解决方法都过于复杂,以至于东搞西搞导出的Json都有问题,最后通过{k:v}组合一个新的字典的方式解决了这个问题,这是第一次用到这种方式,mark一下
2.打开文件时,文件名的参数化问题,在with.open里面无法参数化,但是可以使用filename作为变量,在外定义filename即可