错误:具有Django和API数据的不可损坏类型:“dict”

2024-06-05 12:00:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过Django views.py将数据从api传递到我的html页面

我有上面的错误,读过类似的线程ie tuple()的数据,但是无论我怎么尝试都无法传递它。如果有人知道解决方案-谢谢

views.py:

def forces(request):
    import requests
    import json

    api_request = requests.get("https://data.police.uk/api/forces")

    try:
        api = json.loads(api_request.content)
        api = tuple(api)
    except Exception as e:
        api = "Error getting api forces data, sorry!"

    return render(request,'forces.html', {'api', api})

数据样本:

[{"id":"avon-and-somerset","name":"Avon and Somerset Constabulary"},{"id":"bedfordshire","name":"Bedfordshire Police"},{"id":"cambridgeshire","name":"Cambridgeshire Constabulary"},{"id":"cheshire","name":"Cheshire Constabulary"},{"id":"city-of-london","name":"City of London Police"},{"id":"cleveland","name":"Cleveland Police"},{"id":"cumbria","name":"Cumbria Constabulary"},{"id":"derbyshire","name":"Derbyshire Constabulary"},{"id":"devon-and-cornwall","name":"Devon & Cornwall Police"},{"id":"dorset","name":"Dorset Police"},{"id":"durham","name":"Durham Constabulary"},{"id":"dyfed-powys","name":"Dyfed-Powys Police"},{"id":"essex","name":"Essex Police"},{"id":"gloucestershire","name":"Gloucestershire Constabulary"},{"id":"greater-manchester","name":"Greater Manchester Police"},{"id":"gwent","name":"Gwent Police"},{"id":"hampshire","name":"Hampshire Constabulary"},{"id":"hertfordshire","name":"Hertfordshire Constabulary"},{"id":"humberside","name":"Humberside Police"},{"id":"kent","name":"Kent Police"},{"id":"lancashire","name":"Lancashire Constabulary"},{"id":"leicestershire","name":"Leicestershire Police"},{"id":"lincolnshire","name":"Lincolnshire Police"},{"id":"merseyside","name":"Merseyside Police"},{"id":"metropolitan","name":"Metropolitan Police Service"},{"id":"norfolk","name":"Norfolk Constabulary"},{"id":"north-wales","name":"North Wales Police"},{"id":"north-yorkshire","name":"North Yorkshire Police"},{"id":"northamptonshire","name":"Northamptonshire Police"},{"id":"northumbria","name":"Northumbria Police"},{"id":"nottinghamshire","name":"Nottinghamshire Police"},{"id":"northern-ireland","name":"Police Service of Northern Ireland"},{"id":"south-wales","name":"South Wales Police"},{"id":"south-yorkshire","name":"South Yorkshire Police"},{"id":"staffordshire","name":"Staffordshire Police"},{"id":"suffolk","name":"Suffolk Constabulary"},{"id":"surrey","name":"Surrey Police"},{"id":"sussex","name":"Sussex Police"},{"id":"thames-valley","name":"Thames Valley Police"},{"id":"warwickshire","name":"Warwickshire Police"},{"id":"west-mercia","name":"West Mercia Police"},{"id":"west-midlands","name":"West Midlands Police"},{"id":"west-yorkshire","name":"West Yorkshire Police"},{"id":"wiltshire","name":"Wiltshire Police"}]

Tags: andof数据nameapiidrequestviews
2条回答

解决:语法问题,下面是解决方案

return render(request,'forces.html', {'api' : api})

最好使用.json()提取json响应

api = api_request.json()

相关问题 更多 >