这三类文件互转,没有找到好用的库,或现成的方法。经实践,我的方法如下:
若想把excel和csv转成json,
第一步、先把excel转成csv格式
第二步、再把csv转化成utf-8编码;
第三步、用Sublime Text2打开文件,另存为json格式的文件;
当然现在文件读取并非“python json”格式,需要再进行转化。我们利用csv.reader来打开.json文件,用自定义方法来转化成json类
def get_jsondata(): jsonstr = '' confPath = "../conf/mydata.json" reader=csv.reader(open(os.path.abspath(confPath), 'rb')) count = 0 for item in reader: listfile = '{"data":"'+item[0]+'"}' jsonstr += '"'+str(count)+'":'+listfile+"," count+=1 jsonstring = '{"body":{'+str(jsonstr)+'"end":{"data":"resion"}}}' rejsonstr = json.loads(jsonstring) num = random.randint(0,57) data = rejsonstr["body"][str(num)]["data"] return data
这三种类型文件互相转换注意几个问题:
1、编码问题;
先统一编码,再转化;统一成utf-8;
统一编码的工具:txt另存为
2、单双引号问题;
由于python读取csv后是list,list和json互不兼容单双引号,先转义、再转化;
3、键值问题;
json的编码函数:
json.dumps()
json的解码函数:
json.loads()
不管哪种方式生成json文件,键值要正确。
测试工具:
转载随意~:陶醉 » csv、excel与json互转