这三类文件互转,没有找到好用的库,或现成的方法。经实践,我的方法如下:
若想把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文件,键值要正确。
测试工具: