【问题标题】:How to store and retrieve binary data in orientdb using pyorient?如何使用pyorient在orientdb中存储和检索二进制数据?
【发布时间】:2016-04-25 15:34:35
【问题描述】:

我试图按照 pyorient 的 github 自述文件中给出的示例进行操作。我尝试使用client.record_create 插入二进制字段并使用client.record_load 加载相同的字段。

>>> client.db_create('animals', pyorient.DB_TYPE_DOCUMENT, pyorient.STORAGE_TYPE_MEMORY )
>>> cluster_id = client.command("create class animal")
>>> rec = { '@animal': { 'accommodation': 'house1', 'work': 'office1', 'holiday': b'\xb8P\xa7\x00l|\xa7\x13\x8d\xc8\x80_M\xa0\x11V\xe3 ,G\x1d\xad \x08\xf5rZ\xafc\x16\x1c(' } }  
>>> rec_position = client.record_create( cluster_id[0], rec )
>>> loaded = client.record_load(rec_position._rid)
>>> loaded.oRecordData
{'holiday': None, 'work': 'office1', 'accommodation': 'house1'}

如您所见,检索到的二进制字段的值为 None。 pyorient 支持插入原始字节吗?如果没有,是否有一些解决方法?

【问题讨论】:

  • 您使用的是哪个 ODB 版本?
  • 我正在使用 OrientDb 社区版 v.2.1.15

标签: python orientdb python-3.5 pyorient


【解决方案1】:

不确定结果是否正确,但您可以尝试添加“”

>>> rec = { '@animal': { 'accommodation': 'house1', 'work': 'office1', 'holiday': "b'\xb8P\xa7\x00l|\xa7\x13\x8d\xc8\x80_M\xa0\x11V\xe3 ,G\x1d\xad \x08\xf5rZ\xafc\x16\x1c('" } }

【讨论】:

  • 上述命令没有返回None,但是存储的二进制数据似乎在这个过程中被改变了。我运行了与问题中相同的一系列命令并得到了这个输出。 >>> loaded.oRecordData {'holiday': "b'¸P§\x00l|§\x13\x8dÈ\x80_M\xa0\x11Vã ,G\x1d\xad \x08õrZ¯c\x16\x1c('", 'work': 'office1', 'accommodation': 'house1'}
猜你喜欢
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
  • 2014-11-17
  • 2013-11-22
  • 2011-01-28
  • 2011-09-29
相关资源
最近更新 更多