如何在Django中将Http Post参数的Json值转换为Python Dict?
我正在使用Django接收和处理来自foursquare实时api的推送通知。每个签入都作为POST请求推送到我的服务器,其中包含一个名为checkin的参数。我试图获取checkin参数的值并将其转换为python dict。但是,调用json.loads总是会导致以下错误:如何在Django中将Http Post参数的Json值转换为Python Dict?,python,django,json,api,foursquare,Python,Django,Json,Api,Foursquare,我正在使用Django接收和处理来自foursquare实时api的推送通知。每个签入都作为POST请求推送到我的服务器,其中包含一个名为checkin的参数。我试图获取checkin参数的值并将其转换为python dict。但是,调用json.loads总是会导致以下错误: NameError: name 'true' is not defined 我知道json是有效的,所以我一定是做错了什么 代码是: import json def push(request): if re
NameError: name 'true' is not defined
我知道json是有效的,所以我一定是做错了什么
代码是:
import json
def push(request):
if request.is_secure():
checkin_json = request.POST['checkin']
checkin = json.load(request.POST)
职位申请的主体是:
"checkin =
{
"id": "4e6fe1404b90c00032eeac34",
"createdAt": 1315955008,
"type": "checkin",
"timeZone": "America/New_York",
"user": {
"id": "1",
"firstName": "Jimmy",
"lastName": "Foursquare",
"photo": "https://foursquare.com/img/blank_boy.png",
"gender": "male",
"homeCity": "New York, NY",
"relationship": "self"
},
"venue": {
"id": "4ab7e57cf964a5205f7b20e3",
"name": "foursquare HQ",
"contact": {
"twitter": "foursquare"
},
"location": {
"address": "East Village",
"lat": 40.72809214560253,
"lng": -73.99112284183502,
"city": "New York",
"state": "NY",
"postalCode": "10003",
"country": "USA"
},
"categories": [
{
"id": "4bf58dd8d48988d125941735",
"name": "Tech Startup",
"pluralName": "Tech Startups",
"shortName": "Tech Startup",
"icon": "https://foursquare.com/img/categories/building/default.png",
"parents": [
"Professional & Other Places",
"Offices"
],
"primary": true
}
],
"verified": true,
"stats": {
"checkinsCount": 7313,
"usersCount": 565,
"tipCount": 128
},
"url": "http://foursquare.com"
}
}"
将
checkin=json.load(request.POST)
更改为checkin=json.load(checkin\u json)
在python上,布尔值大写(第一个字母为大写):True/False
看看这个
编辑:
请注意以下几行:
"primary": true
}
],
"verified": true,
两个“true”值都是小写的,需要大写尝试json.loads(checkin_json)
而不是json.loads(request.POST)
。注意额外的“s”