Django 接收post过来的json数据,报错500

一个简单的上传服务器信息的脚本,通过requests.post到Django的一个接口,脚本测试没有问题,换别的接口都没有问题,烦请大神细看。以下是views.py的代码:

@csrf_exempt
def apireport(request):
    if request.method=='POST':
        #get_data = request.body
        req=json.loads(request.body)
        host_data=list()
        for value in req.items():
            host_data.append({
                    'ip':value.get('ip'),
                    'hostname':value.get('hostname'),
                    'osversion':value.get('osversion'),
                    'memory':value.get('memory'),
                    'disk':value.get('disk'),
                    'cpu_core':value.get('cpu_core')})
        auto_host.objects.bulk_create(host_data)
        return HttpResponse('error')
    return HttpResponse('1')

脚本报错:

[root@127 data]# python2.6 auto_get_info.py
{"osversion": "CentOS release 6.9 ", "ip": "192.168.28.128", "hostname": "127.0.0.1 ", "cpu_core": "1", "memory": "1.00G", "disk": " 21.5 GB"}
500

阅读 7.9k
3 个回答

respones.status == 500? 这不是服务器的问题嘛,跟你的脚本没关系啊

request.body.decode

500错误 是因为你代码有问题。

req=json.loads(request.body) 这里得到的req 是个字典吧?

for value in req.items(): 遍历字典.items(),那么value应该是元组 (key, value)

value.get('ip') 既然value是元组,这里就报错了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题