2013-02-05 59 views
0

我知道在JavaScript中有stringify命令,但有沒有像python這樣的金字塔應用程序?現在我有一個可視化的視圖,它需要一個上傳的stl文件並將其解析爲格式。 data= [[[x1,x2,x3],...],[[v1,v2,v3],...]]如何將其轉換爲JSON字符串,以便它可以存儲在SQLite數據庫中?我可以將javascript stringify命令插入到我的views.py文件中嗎?有沒有更簡單的方法來做到這一點?如何將python數組轉換爲JSON字符串,以便它可以存儲在數據庫中?

回答

3

可以使用json模塊要做到這一點:

import json 
data_str = json.dumps(data) 

有可存儲在數據庫中,以及其他數組表示(見pickle)。但是,如果實際構建數據庫,則應該知道這被認爲是違反了基本數據庫原則(第一範式),以將多個數據存儲在關係數據庫中的單個值中。你應該做的是將數組分解成行(可能還有單獨的表),並在每個「單元」中存儲一個值。這將允許您使用SQL查詢和分析數據。

如果您不想構建實際的數據庫(如果數組對您的應用程序完全不透明,並且您將永遠不想按數組中的值進行搜索,排序,聚合或報告)不需要太擔心正常的表單,但是你也可能發現你不需要SQL數據庫的開銷。

+0

我存儲陣列是可變長度的,所以如果我是把每個值在不同的列,我怎麼知道有多少列放在 – BigBoy1337

+0

@ BigBoy1337:對於這一點,你用1一對多關係表,其中每個數組元素有一行。這大概是爲什麼答案說「行(**和可能分開的表**)」。 (PS,很好的答案) – abarnert

+0

如果他們真的是三聯體的集合,那麼你會使用一個三列的表,並且每個三聯體增加一行。如果子陣列的長度可變,則可以使用多種設計策略。 –

1

你也可以用cjson,它比json庫快。

import cjson 
json_str = cjson.encode(your_string) 
相關問題