x = IOBuffer()
serialize(x, "ll")
readall(x) # ""
为什么readall(x)
会返回一个空字符串?
似乎我必须
或者:
x = IOBuffer()
serialize(x, "ll")
seekstart(x)
readall(x)
或
x = IOBuffer()
serialize(x, "ll")
takebuf_string(x)
但他们都给了我UnicodeError: invalid character index
最终我想获得序列化对象的字符串表示形式,将其存储到Redis中。
稍后从Redis中获取字符串,然后从中反序列化。
x = IOBuffer()
serialize(x, "ll")
takebuf_array(x)
它不是字符串,而是字节数组。 Julia字符串比Python 2 str
更严格。
答案 0 :(得分:2)
反序列化的功能是deserialize(stream)
x = IOBuffer()
serialize(x, "ll")
seekstart(x)
deserialize(x)
Serialize将值写入流,以便稍后可以使用deserialize
将其重建为原始值(或尽可能接近)。在Julia repl中键入?serialize
将提供一些详细信息:
help?> serialize
search: serialize Serializer deserialize SerializationState
serialize(stream, value)
Write an arbitrary value to a stream in an opaque format, such that it can be read back by deserialize. The read-back value will be as identical as possible to the original. In general, this process will not work if the reading and writing are done by different versions of Julia, or an instance of Julia with a different system image. Ptr values are serialized as all-zero bit patterns (NULL).
这与将任意字节写入流不同,请查看?write
并尝试使用readall
或takebuf_string