<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Excel表格轉Json數據結構

      Excel表格轉Json數據結構

      輾轉了好幾個項目,每個項目的導表工具都巨難用,速度慢,潛規則多,擴展性差,不易于調試。Sqlite,Json,Lua,Xml各種格式都用過。

      舉個例子:

      大多數導表工具不支持文本數組的解析,因為它們對數組的解析算法異常粗暴,無非就是一個Split(value, ","),當你的文本數組沒有逗號時,一切都OK,一旦出現逗號,解析結果錯誤,但程序依舊正常運行,直到游戲中讀取錯誤時,你才能意識到出問題了。

      不能類型組合,通常這些導表工具都不支持類型之間的組合,例如整數數組,哈希數組等等。有的支持整數數組,但它并不是把整數和數組兩個類型結合,而是單獨定義了一個整數數組的類型,當需要稍微復雜一點的結構時,則不支持甚至完全不能實現,比如數組嵌套數組。

      錯誤無法定位,輸出的錯誤信息幾乎沒有看不懂,策劃更是束手無策。

      沒有類型安全,當配置表的某個字段名被修改時,程序可能完全不知道,直到游戲中讀取配置錯誤。

      數據結構

      在數據結構上我個人最理想的數據格式是Json。

      Sqlite 對客戶端不友善,大多數客戶端對SQL語句并不熟悉。作為配置數據而言,關系數據庫的優勢并不明顯,如果數據查詢需要復雜的SQL語句,這個數據結構設計本身就是錯誤的,如果僅使用簡單的SQL語句查詢,那為什么不直接用Key-Value數據結構?此外,Sqlite需要用專門的數據庫軟件瀏覽,而不能直接在IDE或者文本編輯器中查看。

      Lua 結構跟Json類似,但它有兩個問題,1. 不容易區分數組和哈希,2. 作為數據結構而言,應用范圍比較狹窄,Json比Lua出名太多,Json第三方解析庫比Lua多太多,以至于大家更容易接受Json而非Lua。

      Xml 太多額外數據,閱讀相對于Json不直觀。

      Json 結構簡潔,大多數文本編輯器可高亮內容,第三方解析庫眾多,流行范圍廣,前后端都容易接受。

      易用性

      我見過一次導表開銷花掉1小時的,以至于沒有人敢輕易嘗試導出Excel,這個情況持續了1年,終結這個情況的并不是項目涼了,而是我重新實現了一個工具且完全它的解析格式,新的解析程序導出全部Excel只需10秒。

      我見過Excel配置非常繁瑣,眾多潛規則,當你新建一份配置表時,你必須參考一份舊表,要不然你根本不知道該怎么填。

      一個好用的導表工具

      由于最近重返手游行業,于是想實現一個效率,擴展性,易用性,安全性都比較OK的導表工具。

      格式 (詳情請看Demo)

      //  已支持的格式
      bool        布爾值
      number      數值
      string      字符串
      list        數組
      dict        哈希
      type        自定義結構
      
      //  格式定義
      bool b;
      number n;
      string s;
      [number] n_list;                            //  數值數組    list<number> n_list;
      {number} n_dict;                            //  數組哈希    dict<number> d_dict;
      <number n, string s> type;                  //  自定義結構  struct {
                                                  //                  number n;
                                                  //                  string s;
                                                  //              } type;
      
      //  類型組合
      [[number]]  n_n_list;                       //  數組嵌套數組
      {[number]}  n_n_dict;                       //  哈希嵌套數組
      <[number] n_list, {number} n_dict> type;    //  數據格式如下:
                                                  //  struct {
                                                  //      list<number> n_list;
                                                  //      dict<number> n_dict;
                                                  //  } type;
      

      錯誤定位 (詳情請看Demo)

      //  打印錯誤文件,行,列,出錯原因
      C:\Github\xlsx2json>export.py
      > 異常: C:\Github\xlsx2json/in/cfg_2.xlsx | 5:2 | [bool]值錯誤 "
      > ---Export End---
      

      安全性 (詳情請看Demo)

      //  輸出指定語言的數據結構(當前只支持C++和C#)
      //  可通過Json庫解析到對應的數據結構
      var test = Json.From<config.Test>("test.json");
      var n = test.n;
      var s = test.s;
      

      結束

      執行文件:export.py

      運行環境:Python3.0

      運行依賴:openpyxl

      導表配置 (export.py文件):

      #   Json輸入目錄
      JSON_I = os.getcwd() + "/in/"
      #   Json輸出目錄
      JSON_O = os.getcwd() + "/out/"
      #   結構化輸出目錄
      STRUCT_O = os.getcwd() + "/out/config.cs"
      #   命名空間
      NAMESPACE = "config"
      

      Github傳送門

      posted @ 2020-03-21 02:50  落單的毛毛蟲  閱讀(1533)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产成人午夜精品福利| 亚洲精品国产精品乱码不| 久久天天躁狠狠躁夜夜躁2o2o| 99riav精品免费视频观看| 国产精品美女免费无遮挡| 欧美交a欧美精品喷水| 文中字幕一区二区三区视频播放| 亚洲国产成人无码av在线播放| 免费无码成人AV片在线| 国产精品亚洲一区二区在| 九色国产精品一区二区久久 | 精品国产高清中文字幕| 免费人成网站免费看视频| 亚洲v欧美v日韩v国产v| 国产免费AV片在线看| 久久国产免费直播| 妺妺窝人体色www看美女| 成人午夜福利视频一区二区| 亚洲精品漫画一二三区| 国产普通话对白刺激| 黄色三级亚洲男人的天堂| 99无码中文字幕视频| 国产精品人妻熟女男人的天堂| 成人影片麻豆国产影片免费观看| 久久av无码精品人妻系列试探| 亚洲国产成人无码电影| 一区二区三区AV波多野结衣| 人妻少妇精品视频专区| 武穴市| av亚洲在线一区二区| 国产精品一码在线播放| 99久久免费精品色老| 国产成人综合色视频精品| 石台县| 欧美老熟妇又粗又大| 日日碰狠狠添天天爽五月婷| 国产精品二区中文字幕| 漂亮人妻被中出中文字幕| 国内揄拍国内精品少妇国语| 香蕉久久久久久久av网站| 国产成人精品性色av麻豆|