Poussez les données sérialisées des tampons de protocole dans sqlite.
blob
dans sqlitebuffer
str
pour charger(Il est simplement traité comme un binaire indépendamment de protobuf)
person.proto
message Person {
optional string name = 1;
optional int32 age = 2;
}
sample.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sqlite3
from person_pb2 import Person
if __name__ == '__main__':
#Connexion à la base de données et création de tables
conn = sqlite3.connect(":memory:")
c = conn.cursor()
c.execute("create table people (person blob)")
p = Person(name="John Doe", age=128)
print p
#l'écriture
wb = buffer(p.SerializeToString())
c.execute("insert into people values (?)", [wb])
#Lis
c.execute("select * from people")
rb = c.fetchone()[0]
q = Person()
q.ParseFromString(str(rb))
print q
name: "John Doe"
age: 128
name: "John Doe"
age: 128
J'ai pu lire et écrire.
Recommended Posts