ProblemSerializować dict Pythona do Cassandry 1.2 kolumnie
Próbuję zapisać zserializowaną obiekt (za pomocą cPickle) do 1,2 kolumnie Cassandra, Używam Pythona cql library. Ja już próbowałem definiowania kolumny jako tekst (string) i utf8 blob, w obu przypadkach mam otrzymania ten sam błąd:
obiekt jest dict Python:
obj = {'id':'sometextid',
'time_created':05/12/2013, #<---- datetime
'some other string property': 'some other value'
}
Błąd jest to:
raise cql.ProgrammingError("Bad Request: %s" % ire.why)
cql.apivalues.ProgrammingError: Bad Request: line 31:36 no viable alternative at character '\'
i patrząc na wykonywanej instrukcji CQI widzę kilka znaków „\” po trawieniu obiektu, na przykład:
Część marynowanych obiektu
cdatetime
datetime
p4
(S'\x07\xdd\x03\x1c\x000\x13\x05\xd0<'
tRp5
Moje pytania
Jaki jest zwykły sposób szeregowania dict Pythona (łącznie datetimes), aby zapisać go do Cassandry 1.2 przy użyciu biblioteki CQI? Czy istnieje lepszy lub bardziej prosty sposób robienia tego?
Z góry dzięki!
Nie zamierzam sprawić, że będzie to prawdziwa odpowiedź, ponieważ nie jestem zaznajomiony z Cassandrą. Ale czy sądzisz, że to się nie udaje, bo przestaje czytać przy pojedynczym cytacie? (Ponieważ interpretuje to jako cytowany ciąg znaków lub coś innego? A może próbuje interpretować ukośnik odwrotny -x jako znak kontrolny?) Jeśli tak, być może kodowanie JSON lub piksel -> Base64 będzie działać lepiej (ponieważ wszystkie są tekstem z dobrze zdefiniowane zasady cytowania). –