将Python字典插入为Cassandra中的一列

时间:2018-07-23 15:27:59

标签: python cassandra cql

我想在下面的形式表中将python字典插入Cassandra数据库列中。

Location(ID=25479, name='Hessle', latitude='53.717567', longitude='-0.442169', country='GB')
Location(ID=8166, name='Brough', latitude='53.726452', longitude='-0.578255', country='GB')
Location(ID=25208, name='Eastrington', latitude='53.75481', longitude='-0.786612', country='GB')
Location(ID=25525, name='Howden', latitude='53.764526', longitude='-0.86068', country='GB')
Location(ID=7780, name='Selby', latitude='53.78336', longitude='-1.06355', country='GB')
Location(ID=26157, name='Sherburn-In-Elmet', latitude='53.797142', longitude='-1.23176', country='GB')
Location(ID=25308, name='Garforth Station', latitude='53.796211', longitude='-1.382083', country='GB')
Location(ID=8262, name='Leeds', latitude='53.795158', longitude='-1.549089', country='GB')

如您所见,它是各种数据类型元素的混合体。我正在考虑将列定义为

data= {'key1':25,'key2':10.12,'key3':[1,2,3],'key4': 'SomeText'}

并在插入操作期间传递字典。该字典将作为组插入插入,同时还有其他100个变量。有没有更好的方法或内存有效的方法?我还没有访问数据库的权限,因此我无法执行上面的代码并查看状态。

1 个答案:

答案 0 :(得分:4)

您不能将多个数据类型作为值插入到同一地图中-您始终在地图内部n eed to declare specific types for key & value

如果您确实需要在其中存储异构数据,则可以将该字段声明为文本,然后将序列化为JSON的字典插入到该字段中,例如在读取时进行反序列化。 (或者您可以使用Blob类型,并根据需要将序列作为酸洗液从字节数组进行序列化/反序列化。)