我需要从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,则该字段只是数据类型..如何获取实际数据值?然后将其嵌入到解析每个单独样本的“结果”字典中?
答案 0 :(得分:3)
你正在把错误的物品拉到一起。仅限邮寄desc
和line
,您无需使用cursor.description
元组中的第二项:
desc=[d[0] for d in cursor.description]
result=[dict(zip(desc, line)) for line in cursor]