0

我有以下字典格式:

{ File1:{name1:2,name2:4},
  File2:{name3:3, name2:5},
  File3:{name5:6}  }

我想将它们插入到具有以下格式的 MySQL 表中:

Id|File_name|Name|#of Seen
1   File1    name1  2
2   File1    name2  4
3   File3    name3  3
4   File2    name2  5
5   File3    name5  6

我写了下面的代码,但我的表格行(S)中不断出现“null”(现在只有一行)。

connect = MySQLdb.connect(host = "127.8.2.3", port=3377, user = "root",  db="info")
with connect: 

    cur = connect.cursor()
    for i in maindict.items():
        keys=i[0]
        for k,v in innerdict.items():
            k=i[1]
            v=i[2]



            query="INSERT INTO TABLE names_info (id,filename,name) VALUES (%(id)s,% (filename)s, %(name)s)"
            cursor.execute(query)

有谁知道它为什么不起作用或者我如何从我的数据中获取上表?

4

1 回答 1

1

好吧,进行字典迭代的一种简单方法是......

maindict = {'File1': {'name1': 2, 'name2': 4},
            'File2': {'name3': 3, 'name2': 5},
            'File3': {'name5': 6}}

for filename, name_and_number in maindict.iteritems():
    for name, number in name_and_number.iteritems():
        print filename, name, number

...您可能应该替换这些行...

query="INSERT INTO TABLE names_info (id,filename,name) VALUES (%(id)s,% (filename)s, %(name)s)"
cursor.execute(query)

......更像这样的东西......

query = "INSERT INTO TABLE names_info (id,filename,name) VALUES (%s,%s,%s)"
cursor.execute(query, [id, filename, name])

...以避免任何潜在的SQL 注入问题。

于 2013-04-16T12:24:31.983 回答