当前位置: 首页 > 面试题库 >

SQLAlchemy JSON作为Blob /文本

公冶才
2023-03-14
问题内容

我使用MySQL将JSON作为blob /文本存储在列中。有没有简单的方法可以使用python / SQLAlchemy将其转换为字典?


问题答案:

您可以使用SQLAlchemy
轻松创建自己的类型

对于SQLAlchemy版本> =
0.7,请在下面查看Yogesh的答案

import jsonpickle
import sqlalchemy.types as types

class JsonType(types.MutableType, types.TypeDecorator):    
    impl = types.Unicode

    def process_bind_param(self, value, engine):
        return unicode(jsonpickle.encode(value))

    def process_result_value(self, value, engine):
        if value:
            return jsonpickle.decode(value)
        else:
            # default can also be a list
            return {}

在定义表时可以使用它(示例使用elixir):

from elixir import *
class MyTable(Entity):
    using_options(tablename='my_table')
    foo = Field(String, primary_key=True)
    content = Field(JsonType())
    active = Field(Boolean, default=True)

您还可以使用其他json序列化程序进行jsonpickle。



 类似资料:
  • 我有Node.js应用程序,前端在Angular中,我需要上传和下载文件到Azure Blob/Azure存储 我已经按照这里给出的说明进行了操作:https://github.com/azure/azure-sdk-for-js/blob/master/sdk/storage/storage-blob/samples/typescript/src/basic.ts 下面是我的代码,它列出了BLO

  • 我有两个关于从/到Azure blob存储读取和写入Python对象的问题。 > 有人能告诉我如何将Python数据框作为csv文件直接写入Azure Blob而不在本地存储吗? 我尝试使用函数“从\u text创建\u blob\u”和“从\u stream创建\u blob\u”,但它们都不起作用。 将数据帧转换为字符串,并使用函数将文件写入blob,但作为普通字符串,而不是csv。 如何将A

  • 问题内容: 这可能与php和mysql数据库一起将blob转换为图像文件吗? 问题答案: 如果BLOB包含图像的二进制数据(以可识别的格式,例如tiff,png,jpeg等),则获取BLOB的内容,将其写入文件中,然后…,您得到了图像。 在某些奇怪的操作系统上,您必须给输出文件一个对应的扩展名,以便可以这样识别图像文件。

  • 简单地说,我想在Firefox中播放一个blob MP3文件。 我可以访问blob本身:(用mime类型切片),以及它的URL:。 我试过: > 但我在Firebug中得到一个警告,告诉我Firefox无法读取类型的文件。 多个音频播放器库(SoundManager、JPlayer等),但似乎都不允许blob URL作为输入。 我做错了吗?或者有人知道可以从Blob播放MP3文件的变通方法或库吗?

  • 我试图从Firefox中的新MediaRecorderAPI发送一个Blob到NodeJS以将其存储在文件中。Blob包含转换为webm-file的记录。我在发送之前将这个Blob分成一定的大小,以便能够通过webrtc数据通道提供的带宽发送它。这个看起来像这样: 在nodeJS方面,我试图将数据转换回webm文件,就像这样: 它告诉我,块被写入,但是文件是空的。我尝试了从blob派生的bas64

  • 编写了通过Spark读取文本文件的代码...在Local中运行良好...但在HDInsight中运行时产生错误->从Blob读取文本文件 org.apache.spark.sparkException:作业由于阶段失败而中止:阶段0.0中的任务0失败了4次,最近的失败:阶段0.0中丢失的任务0.3(TID 5,wn1-hchdin.bpqkkmavxs0ehkfnaruw4ed03d.dx.int