cx_Oracle查询结果到嵌套字典

时间:2012-12-17 15:29:11

标签: python dictionary cx-oracle

我需要从Oracle查询结果中创建一组字典。

我的数据显示在电台ID,日期,时间,地点,物种和捕获重量上。对于每个物种,都有一条新线,而所有位置等数据可能都是多余的。

首先,我需要按字段名和值创建一个键控字典,例如stationID,date等,这样当我打电话时,比方说,

value[1]  (this being the station ID field)

我得到了

112

最终结果是将所有“喜欢”的电台ID,日期等集成到一个唯一的密钥中 - 结果数据(鱼捕获)是值。

[date,time,location, etc]:cod 47,hake 31,dogfish 5

到目前为止,为了通过字段名称将数据解析为单独的键控字典,然后按行解析:

desc=[d[0] for d in cursor.description]
field=[d[1] for d in cursor.description]
value=dict(zip(desc,field))   
result=[dict(zip(value,line)) for line in cursor]
print result[1]

但是,如果我尝试调用value,则该字段只是数据类型..如何获取实际数据值?然后将其嵌入到解析每个单独样本的“结果”字典中?

1 个答案:

答案 0 :(得分:3)

你正在把错误的物品拉到一起。仅限邮寄descline,您无需使用cursor.description元组中的第二项:

desc=[d[0] for d in cursor.description]
result=[dict(zip(desc, line)) for line in cursor]