簡體   English   中英

如何在HugSQL結果中將返回的映射轉換為json csv

[英]How do I convert the returned maps to json csv in HugSQL results

我正在嘗試使用HugSQL從我的數據庫中選擇一些記錄,當我嘗試這段代碼時,我找回了幾個問題:

f/attempt-all [_ (println  "Getting DB records")
                    db-records (oracle-db/get-records my-db)
;hangs here when there are large(100,000k+) records

-- :name get-records
select /*+ index(src_ski_sysevents_au SRC_SKI_SYSEVENTS_AU_IDX_A)*/ * from src_ski_sysevents_au where week_id='201903' AND ROWNUM <'10000'

實際結果:db-records有一個映射列表(返回的每個記錄的映射),如下所示:

({:remarks nil, :timeprocessing 1994-01-01 00:00:00.000, :devicetype 3M, :staffcode 0M, 
           :timedeletion 1994-01-01 00:00:00.000, :occurred 1M, :syseventdesig Ticket jam, :time 2019-01-14 10:47:37.350, :syseventno 27M, 
  :devicedesig P4 LH Exit Wilga ST - 49, :devicenoprocessing 0M, :component nil, :lotabbr P3P4, :deviceabbr P4 LEX WIL, 
  :week_id 201903M, :lotdesig P3, P4 Levels, :dss_update_time #inst "2019-01-14T15:48:46.000000000-00:00", :loaded_new_yn N, 
  :operatorfirstname nil, :quantity 1M, :systemeventregno 7365M, :pdi_batch_id 697410M, :lotno 1M, :deviceno 49M, :deleted_yn N, 
  :centre_no 0012000, :lot_no 0012001, :operatorsurname unattended, :operatornoprocessing 0M}
  ...
)

我想知道如何將這個映射列表轉換為Json字符串文件或CSV文件,以將其推送到我的端點。 在處理非字符串值時

:timeprocessing 1994-01-01 00:00:00.000

一旦我將這個測試字符串放入測試(comment (def testmap {input_test_Data}))並且數字格式無效,我就會看到這些錯誤,我也發現了

:我的DB中的dss_update_time是“15 / JAN / 19”

但是在HugSQL結果中,我得到了類似的東西

:dss_update_time #inst“2019-01-14T15:48:46.0​​00000000-00:00”

基本上我將如何確保我收回所有數據至少在我的問題的第二部分非常感謝一些幫助。 謝謝

請使用函數prn而不是println打印出樣本數據行。 然后你會看到日期值實際上是字符串( prn不會剝離像println那樣的雙引號字符)。

此時,您可以使用正常的EDN-> JSON轉換。 圖珀洛圖書館一個簡單的功能

(t/edn->json  {:a 1  :b 2})
;=> {"a":1,"b":2}

它只使用了封面下的Cheshire lib並自動進行關鍵字< - >字符串轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM