簡體   English   中英

Python :- 如何將查詢結果數據存儲到數組中並通過索引號訪問每個元素

[英]Python :- How to store query result data into an array and access each element by Index number

我想將數據存儲在一個數組變量中,比如 path_list 並將所有狀態存儲到這個數組中。 當我打印 path_list [0] 時它應該打印 'MSF' 或者當我打印 path_list [2] 時它應該打印 'MIF' 但目前所有的結果都被存儲到一個元組中,當我使用 print in 時它沒有被打印for 循環。 但是,當我在循環之外打印它時,它正在工作。 請以任何方式建議我

我的表結構就像

STATE    TOC      ID      NUMBER
MSF   MSPROFMSV 465984  5926987700
MSF   MSPROFMSV 465977  5926063400
MIF   MIPROFMSV 465977  5926063100
MIF   MIPROFMSV 465977  5926063900

代碼:-

import cx_Oracle
import shutil
import os
import logging
import time
import re
timestr = '_'+time.strftime("%Y%m%d-%H%M%S")    
conn = cx_Oracle.connect(user=r'lsaxena2/Dec2*19k@ed03:1521/encdv03svc.uhc.com') 
cur_path = conn.cursor()
cur_file = conn.cursor()
cur_path.execute('select distinct state from E0572476.ENSUBAPP_config order by state') 
path_exec = cur_path.fetchall()
i=0
path_list = []
print (path_exec[1][0])
while i < len(path_exec):
   path_list = path_exec[i][0]
   print (path_list[i])    
   i = i+ 1

SQL 生成行,這些行始終是元組。 由於 cr.fetchall 獲取所有結果,您將獲得行列表 = 元組列表。 即使你只有一個值,它也是一個 1-uple。

因此,您只需要從元組中提取一個值並將其移動到輸出列表中:

path_list = [row[0] for row in path_exec]

順便說一句,您的命名方案很糟糕。 我不明白為什么你有兩個光標,或者為什么你從不關閉它們

import cx_Oracle
import time

timestr = '_'+time.strftime("%Y%m%d-%H%M%S")

with cx_Oracle.connect(user=r'lsaxena2/Dec2*19k@ed03:1521/encdv03svc.uhc.com') as conn,\
     conn.cursor() as cr:
    cr.execute('select distinct state from E0572476.ENSUBAPP_config order by state') 
    states = [state for [state] in cr.fetchall()]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM