【发布时间】:2018-04-09 11:40:02
【问题描述】:
目前是 python/django 的新手,如果这是一个简单的问题,请原谅我。
我正在使用请求下载 json 文件并尝试解析/显示模板中的值。
我收到以下错误: `调用 Python 对象时超出最大递归深度
代码如下:
from django import template
from django.template.loader import render_to_string
from wagtail.wagtailcore.blocks.base import Block
from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader
import datetime
import urllib
import json
import requests
import requests_cache
requests_cache.install_cache('demo_cache')
register = template.Library()
# Advert snippets
@register.inclusion_tag('swd/templates/adverts.html', takes_context=True)
def adverts(context):
return {
'adverts': Advert.objects.all(),
'request': context['request'],
}
#Socialboard
#Pinterest
@register.inclusion_tag('blocks/socialboard.html')
def get_pinterest_pins():
req = requests.get(URL)
req_json = json.loads(req.content)
for key, value in req_json.items():
print (key, value)
# Related within article
@register.filter
def inject_related_after_paragraph(value, arg):
related_list = render_to_string("related.list.html")
paragraphs = value.split('</p>')
if arg < len(paragraphs):
paragraphs[arg] = related_list + paragraphs[arg]
value = '</p>'.join(paragraphs)
return value
@register.filter
def inject_advert_after_paragraph(value, arg):
advert = render_to_string("adverts.html")
paragraphs = value.split('</p>')
if arg < len(paragraphs):
paragraphs[arg] = advert + paragraphs[arg]
value = '</p>'.join(paragraphs)
return value
这会循环遍历 URL,但会一直持续到超时为止。
【问题讨论】:
-
第三行末尾的引号可能会导致问题
-
提供网址,我们可以测试确认。
-
请正确格式化您的代码,并发布完整的回溯。
-
不确定,但我猜 JSON 嵌套太深了。
-
注意:如果您希望将响应对象转换为 json,那么它已经具有
json方法属性。即req.json()
标签: python django python-3.x wagtail