为什么我的字典在列表中?

时间:2016-05-24 18:45:03

标签: python dictionary sqlite

我从一个sqlite3文件导入到一个字典中插入mongodb,我有点工作,但字典嵌套在列表中,我不明白为什么或如何把它拿出来。

    # python3.5

    import os
    import sqlite3 as lite
    from collections import defaultdict
    import pprint

    def dict_factory(cursor, row):
        d = {}
        for idx, col in enumerate(cursor.description):
            d[col[0]] = row[idx]
        return d

    def open_sql(sql_folder, sql_name, sql_table):
        path_name = os.path.join(sql_folder,sql_name).strip()
        con = lite.connect(path_name)
        con.row_factory = dict_factory
        cur = con.cursor()
        cur.execute('SELECT * FROM ' + sql_table) 
        contents = defaultdict(list)
        contents = cur.fetchall()
        pprint.pprint(contents)
        con.close()
        return contents

我的输出

[{'block_size': 512, 'img_offset': 0, 'obj_id': 2, 'vs_type': 1}]

我想要的输出是什么

{'block_size': 512, 'img_offset': 0, 'obj_id': 2, 'vs_type': 1}

1 个答案:

答案 0 :(得分:2)

因为您使用的是fetchall(),请使用fetchone()代替:

contents = cur.fetchone()
pprint.pprint(contents)