Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环数据:cmp中超过最大递归深度_Python_Django - Fatal编程技术网

Python 循环数据:cmp中超过最大递归深度

Python 循环数据:cmp中超过最大递归深度,python,django,Python,Django,我正在使用Django,它使用get\u或\u create遍历项目,查看它们是否存在。现在我有这个问题 def insert_titles(self): game = None title = None for k,v in self.data.items(): game_exists = Game.objects.all().get_or_create(game_name=v['title']) #will get RuntimeError: ma

我正在使用Django,它使用get\u或\u create遍历项目,查看它们是否存在。现在我有这个问题

def insert_titles(self):
    game = None
    title = None
    for k,v in self.data.items():


        game_exists = Game.objects.all().get_or_create(game_name=v['title']) #will get RuntimeError: maximum recursion depth exceeded in cmp
        print game_exists
基本上,这是一个将作为cron作业运行的脚本,因此我必须迭代一系列项才能达到我想要的目的

            while True:
            try:

                data = strategy.process()
                filter = FilterGames(data, link) 
过滤游戏代码:

def __init__(self, data):
    self.data = data
    self.insert_titles()
    print "init"
我以前在Play Framework中做过这件事,也许因为我对Python还没有经验,所以我对它的看法是错误的,当它给我带来这种类型的错误时,我不知道如何继续。我试着改变一下结构,但没有效果。奇怪的是,如果我在
game\u name
中使用
string
,它将按预期工作,但如果我使用从循环中收集的数据,它将开始抛出该错误


最后,我想知道如何纠正这类错误,并希望进一步了解它为什么会这样做。

好的,在探究和调查它为什么会这样做之后。我注意到对象的
type
不是真正的
string
类型,或者在本例中是
str
。我使用BeautifulSoup从一些XML文件中获取数据,当我使用
bs4.find().string
时,它给了我一个
navigablesting
,而不是一个普通的字符串


因此,为便于将来参考,请确保
类型是正确的。将
NavigableString
馈送给Django筛选器时出现了此意外错误

insert\u titles
函数是否发布了整个函数?你确定你根本没有操纵
v
变量创建一个循环引用,就像这个问题中的:@DanHoerst Trace是你请求的,没有,我真的没有操纵任何东西。如果我用
get\u或\u create
删除该行,一切正常。因此,我假设这个特定的循环有问题,使得django.db变得“疯狂”。这是只在从cron作业执行时发生,还是在shell中发生?比如,如果你启动django shell并执行一个
游戏.objects.get\u或\u create(Game\u name='somename')
,你会得到什么?@MikeFogel一切都很好,我幸运地修复了它。贴出错误的答案,希望其他人注意到这种行为并避免。