add excel2json.py
This commit is contained in:
parent
9ed5d76500
commit
9ffec515ef
50
ext_data/excel2json.py
Normal file
50
ext_data/excel2json.py
Normal file
@ -0,0 +1,50 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import json
|
||||
import xlrd
|
||||
|
||||
DATA_ROW_INDEX = 5
|
||||
DATA_COL_INDEX = 1
|
||||
TYPE_ROW_INDEX = 2
|
||||
NAME_ROW_INDEX = 4
|
||||
|
||||
def convertSheet(sourceFile, sheet):
|
||||
data = []
|
||||
for m in range(DATA_ROW_INDEX, sheet.nrows):
|
||||
item = {}
|
||||
for n in range(DATA_COL_INDEX, sheet.ncols):
|
||||
field_name = sheet.row_values(NAME_ROW_INDEX)[n]
|
||||
field_type = sheet.row_values(TYPE_ROW_INDEX)[n]
|
||||
field_value = sheet.row_values(m)[n]
|
||||
item[field_name] = field_value
|
||||
if field_type == 'int':
|
||||
item[field_name] = int(field_value)
|
||||
elif field_type == 'string':
|
||||
item[field_name] = str(field_value)
|
||||
else:
|
||||
assert False
|
||||
#print(field_name, type_name, field_value)
|
||||
#end for n
|
||||
data.append(item)
|
||||
#end for m
|
||||
jsondata = json.dumps(data, indent=4, separators=(',', ': '), ensure_ascii=False)
|
||||
out_file = open("./" + sourceFile[:-5] + ".json", "w")
|
||||
out_file.write(jsondata)
|
||||
out_file.close()
|
||||
|
||||
def convert(sourceFile):
|
||||
if sourceFile != 'PlatformIds.xlsx':
|
||||
return
|
||||
print(sourceFile)
|
||||
excel = xlrd.open_workbook(sourceFile)
|
||||
for sheet in excel.sheets():
|
||||
convertSheet(sourceFile, sheet)
|
||||
break
|
||||
|
||||
def main():
|
||||
for file in os.listdir('./'):
|
||||
if file[0] != '~' and (file[-5:] == '.xlsx' or file[-5:] == '.xlsx'):
|
||||
convert(file)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
x
Reference in New Issue
Block a user