因此,对于一个项目,我正在查询一堆Google Analytics数据并将其存储到Sqlit3数据库中。现在我正在编写一个脚本,用于检索几个月内每天的历史数据。脚本运行大约一个月没有错误,然后抛出这个奇怪的错误,我找不到很多信息。任何人都可以帮我弄清楚它为什么扔这个。这是某种内存错误吗?
这里是追溯:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
399, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
75, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 40, in im
port_module
__import__(name)
File "C:\Users\root.BrandonYates-PC\Documents\GitHub\Weblife-Repo\bipol_django
_site\ga\management\commands\backlog.py", line 10, in <module>
class backLog():
File "C:\Users\root.BrandonYates-PC\Documents\GitHub\Weblife-Repo\bipol_django
_site\ga\management\commands\backlog.py", line 42, in backLog
p = Populate(str(date.fromordinal(i)), str(date.fromordinal(i)))
File "C:\Users\root.BrandonYates-PC\Documents\GitHub\Weblife-Repo\bipol_django
_site\ga\management\commands\fillTest.py", line 126, in __init__
PageTrackingData())
File "C:\Users\root.BrandonYates-PC\Documents\GitHub\Weblife-Repo\bipol_django
_site\ga\management\commands\fillTest.py", line 56, in fill
element.save()
File "C:\Python27\lib\site-packages\django\db\models\base.py", line 545, in sa
ve
force_update=force_update, update_fields=update_fields)
File "C:\Python27\lib\site-packages\django\db\models\base.py", line 573, in sa
ve_base
updated = self._save_table(raw, cls, force_insert, force_update, using, upda
te_fields)
File "C:\Python27\lib\site-packages\django\db\transaction.py", line 319, in __
exit__
connection.rollback()
File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 180,
in rollback
self._rollback()
File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 144,
in _rollback
return self.connection.rollback()
File "C:\Python27\lib\site-packages\django\db\utils.py", line 99, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 144,
in _rollback
return self.connection.rollback()
django.db.utils.OperationalError: cannot rollback - no transaction is active
相关守则部分:
for i in range(d1, d2):
print "Date Range: " + str(date.fromordinal(i))
p = Populate(str(date.fromordinal(i)), str(date.fromordinal(i)))
#inside populate
self.fill(ecommerce, EcommerceData())
self.fill(self.query.get_data(qsf.getPageTrackingMetrics(),
qsf.getPageTrackingDimensions()),
PageTrackingData())
self.fill(self.query.get_data(qsf.getTrafficSourceMetrics(),
qsf.getTrafficSourceDimensions()),
TrafficData())
self.fill(self.query.get_data(qsf.getAdwordsMetrics(),
qsf.getAdwordsDimensions()), AdwordsData())
def fill(self, data, object):
"""
Create an object list
Iterate through the row data, create and append each object to the list
Add the analytics data key to the user data, insert the row by saving
"""
rows = []
for row in data:
#print row
rows.append( object.create( row ) )
for element in rows:
element.analytics = self.analytic
#print element
element.save()
答案 0 :(得分:1)
好吧所以它似乎是某种与内存相关的错误。如果您收到此错误,则可能通过ram运行了太多变量。简而言之,您需要使您的代码更有效地处理您正在处理的数据,或者将数据切分为更易于管理的数据块。