1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| import csv import json import sys
def convert(): tables = {} with open('完整table.csv', mode='r', encoding='utf-8') as f: reader = csv.reader(f) header = next(reader) for row in reader: if len(row) < 6: continue table_name, col_name, desc_json_str, data_type, nullable, index_p = row if table_name not in tables: tables[table_name] = [] try: desc_json = json.loads(desc_json_str) chinese_name = desc_json.get('中文名稱', '') example = desc_json.get('欄位範例', '') except: chinese_name = desc_json_str example = '' tables[table_name].append({ 'col_name': col_name, 'chinese_name': chinese_name, 'data_type': data_type, 'example': example, 'index': index_p })
output = [] for table_name, columns in tables.items(): output.append(f'### 資料表: {table_name}') output.append('| 欄位名稱 | 中文名稱 | 資料型態 | 欄位範例 | 索引 |') output.append('| :--- | :--- | :--- | :--- | :--- |') for col in columns: c_name = str(col['col_name']).replace('|', '\\|') zh_name = str(col['chinese_name']).replace('|', '\\|') d_type = str(col['data_type']).replace('|', '\\|') ex = str(col['example']).replace('|', '\\|') idx = str(col['index']).replace('|', '\\|') output.append(f'| {c_name} | {zh_name} | {d_type} | {ex} | {idx} |') output.append('\n') with open('完整table.md', 'w', encoding='utf-8') as f: f.write('\n'.join(output))
if __name__ == "__main__": convert()
|