Python 2.7 词汇和列表中的不同排序顺序
Python 2.7 词汇和列表中的不同排序顺序,python-2.7,oracle11g,Python 2.7,Oracle11g,我必须从Oracle数据库中获取所有列名和类型,然后根据列类型执行不同的操作 我的代码是: for tab in table_list: tables = {}#tabel list table_types = {} #for each table dictionary column_name: type cur.execute("select column_name, data_type from all_tab_cols where owner = 'AAA' and
我必须从Oracle数据库中获取所有列名和类型,然后根据列类型执行不同的操作 我的代码是:
for tab in table_list:
tables = {}#tabel list
table_types = {} #for each table dictionary column_name: type
cur.execute("select column_name, data_type from all_tab_cols where owner = 'AAA' and table_name = '"+tab+"' and hidden_column = 'NO' order by column_id asc")
res = cur.fetchall()
for type in res:
table_types[type[0]] = type[1]
tables[tab]=table_types
print res
print table_types
对于res
我得到:
[('COAG_ID', 'NUMBER'), ('COAG_CONT_ID', 'NUMBER'), ('COAG_CONT_OPER_ID', 'NUMBER'), ('COAG_CAGT_ID', 'NUMBER'), etc...
对于表格类型
我得到:
{'COAG_DELIVERY_PAYER': 'VARCHAR2', 'COAG_AGREEMENT_DATE': 'DATE', 'COAG_HANDSET_FULL_PRICE': 'NUMBER', etc...
我的问题是:为什么这些值的顺序不同?
表_类型中的值直接取自res,为什么它们的顺序不同
问候Pawel表格类型是字典,字典的存储或显示顺序与插入的顺序不同 字典的顺序与它们内部的工作方式以及它们在哈希表中的顺序有关。这又取决于键的散列值、插入顺序以及使用的Python实现
顺序是任意的(但不是随机的),知道它将是哪个顺序将永远不会有用。表格类型是字典,字典不会以您插入的相同顺序存储或显示 字典的顺序与它们内部的工作方式以及它们在哈希表中的顺序有关。这又取决于键的散列值、插入顺序以及使用的Python实现
顺序是任意的(但不是随机的),知道它将是哪个顺序永远不会有用。为了确保从Oracle数据库返回的值始终处于相同的顺序,请在代码中添加一个
order BY
子句,例如:order BY column\u name
啊,是的,除非我突出显示它,否则它不会显示在我的屏幕上。我将不参与讨论,因为我对Python知之甚少。为了确保从Oracle数据库返回的值始终保持相同的顺序,请在代码中添加一个orderby
子句,例如:orderby column\u name
啊,是的,除非我突出显示它,否则它不会显示在我的屏幕上。我将不参与讨论,因为我对Python知之甚少。如果您希望以相同的顺序使用OrderedICT,如果您希望以相同的顺序使用OrderedICT