在dict中保存cursor.callproc的结果

时间:2015-04-13 11:40:36

标签: python-3.x dictionary mysql-connector-python

我尝试使用存储过程从MySQL数据库获取一些数据并将其存储在dict中(如blair here所述):

    def createProduct(self):
    self.cursor.callproc('newProduct')

    result = []
    for recordset in self.cursor.stored_results():
        for row in recordset:
            result.append(dict(zip(recordset.column_names,row)))
            print(result)

使用选项dictionary=True创建光标。 print(result)的输出为:

  

[{' manufacturer_id':0,' alarm_threshold':10,' users_id_tech':0,' name':' ; ITEM1&#39 ;,   ' entities_id':0,'记事本':无,' locations_id':0,' groups_id_tech':0,   ' consumableitemtypes_id':0,' id':1,'评论':'',' is_deleted':0 ,'参考':''}]

我尝试使用以下代码访问密钥nameitem1)的值:

print(result['name'])
  

TypeError:list indices必须是整数,而不是str

print(result(name))
  

NameError:name' name'未定义

我认为来自blair的代码会创建一个dict,其值可以通过键访问(例如' name')?这是错的还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

查看您发布的词典列表,我认为您的打印方式存在问题。

我想这个

print(result['name'])

应该成为这个

print(result[0]['name'])

因为您正在尝试访问列表中的字典。 希望它有效。