如何将Python数组转换为可存储在数据库中的JSON字符串?
我知道在JavaScript中有一个叫做stringify的命令,但在Python的Pyramid应用中有没有类似的东西?现在我有一个视图函数,它接收一个上传的stl文件,并把它解析成这样的格式:data= [[[x1,x2,x3],...],[[v1,v2,v3],...]]
我该如何将这个转换成一个JSON字符串,以便可以存储在SQLite数据库中?我可以把JavaScript的stringify命令放到我的views.py文件里吗?有没有更简单的方法来做到这一点?
2 个回答
1
你也可以使用 cjson,它比 json
库要快。
import cjson
json_str = cjson.encode(your_string)
3
你可以使用 json
模块来实现这个功能:
import json
data_str = json.dumps(data)
其实还有其他的数组表示方式可以存储在数据库里,比如 pickle
。
不过,如果你真的在构建一个数据库,你需要知道在关系型数据库中,把多个数据放在一个值里是违反基本数据库原则的(这叫做第一范式)。正确的做法是把数组拆分成多行(可能还要分成不同的表),然后在每个“单元格”里只存一个值。这样你就可以用 SQL 来查询和分析数据了。
如果你并不是在构建一个真正的数据库(比如说这个数组对你的应用来说是完全不透明的,你也不打算根据数组里的值进行搜索、排序、汇总或报告),那么你就不需要太担心第一范式的问题,也许你会发现其实不需要使用 SQL 数据库的复杂性。