2017-06-20 53 views
0

我試圖創建一個應用程序,我想在python字典中加載一個Cassandra表。如何從cassandra表值創建python字典?

表看起來像下面 -

startup_id | startup_name 
-----------+--------------------- 
     1 |  name 
     2 |  gender 
     3 |  address 
     4 |  pincode  
     5 |  phoneno 

我想在Python字典加載此表。

預期輸出 -

{'name': '1' , 'gender': '2', 'address': '3', 'pincode': '4', 'phoneno': '5'} 

注 - startup_name列是唯一的,這樣我們就可以將其添加爲在Python字典的關鍵。

目前我按照以下的方式來做到這一點 -

main_dict = {} 
rows = session.execute('SELECT startup_id,startup_name FROM startup;') 
for (id, name) in rows: 
    main_dict[name] = id 

我想知道,他們是任何簡單快捷的方式做到這一點?任何將使性能更快的答案將不勝感激。

在此先感謝!

回答

0

這裏是有返回行作爲一個類型的字典代碼示例卡桑德拉文檔的鏈接:https://datastax.github.io/python-driver/api/cassandra/query.html#cassandra.query.dict_factory 基本上,你更改行工廠爲會議dict_factory。

session = cluster.connect(...) 
session.row_factory = dict_factory 
session.execute(...) 

順便說一句,在默認情況下,返回的行已經被命名爲元組,所以你可以使用列名作爲對象成員,像這樣:

rows = session.execute("select peer,release_version,rack,data_center from system.peers;") 
    for row in rows: 
    print(row.release_version, row.rack, row.data_center)