csv、excel与json互转

这三类文件互转,没有找到好用的库,或现成的方法。经实践,我的方法如下:

若想把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文件,键值要正确。

测试工具:

http://jsoneditoronline.org/

转载随意~:陶醉 » csv、excel与json互转

赞 (11)
分享到:更多 ()