2013-02-05 40 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) 
相关问题