Python在尝试从字典中插入数据时解压缩的值太多了

问题描述 投票:0回答:1

我在python中有一个字典,我想将它的值插入到数据库中以快速填充我的Db。每次我尝试这个我都会收到以下错误:ValueError: too many values to unpack (expected 2)

这就是我所拥有的:

def post(self, request):
    image = "no image"
    characters = {
        "Auron": {'name': "Auron",
                   'stars': 4,
                   'image': image,
                   'series': "FF10"},
        "Barret": {'name': "Barret",
                   'stars': 3,
                   'image': image,
                   'series': "FF7"},
        "Zidane":  {'name': "Zidane",
                   'stars': 5,
                   'image': image,
                   'series': "FF9"}
    }
    for key, value in characters:
        number = 3
        name = value.name
        stars = value.stars
        image = value.image
        series = value.series
        Characters.objects.create(id=number,name=name,stars=stars,image=image,series=series)
        number += 1

    return JsonResponse("Added all chars", safe=False)

此外,此代码在ajax调用之后运行。为什么会这样?我用Google搜索了这个,但找不到与我的问题类似的东西。可能是什么导致了这个?

谢谢

python mysql dictionary
1个回答
0
投票
for key, value in characters.iteritems():

原因是如果你遍历一个字典,你只能获得密钥。您需要显式迭代items()iteritems()(后者通常使用较少的内存)

>>> d=dict(a=1, b=2)
>>> d
{'a': 1, 'b': 2}
>>> [x for x in d]
['a', 'b']
>>> [x for x in d.iteritems()]
[('a', 1), ('b', 2)]
>>> [x for x in d.items()]
[('a', 1), ('b', 2)]

注意iteritems和items是如何元组的,而字典上的直接迭代不是?

您可以在https://www.python-course.eu/dictionaries.php了解更多信息

或直接从源https://docs.python.org/2/library/stdtypes.html#dict

© www.soinside.com 2019 - 2024. All rights reserved.