我正在尝试创建json但无法创建正确的。我的响应与我想要的不相似。请帮助解决。
views.py
json={}
all_results=[]
restaurants={}
for i in restaurant:
restaurant=Restaurant.objects.get(id=i.id)
restaurant_serializer=RestaurantSerializers(restaurant)
json['distace'] = i.distance
json['review_count']=reviews
json['liked']=False
restaurants['nearby_restaurants']=json
restaurants['popular_restaurants']=json
all_results.append(restaurants)
return all_results
响应:我正在得到
[
{
"top_reviewed_restaurants": {
"distace": 1.53590595706412,
"review_count": 0,
"liked": false
},
"nearby_restaurants": {
"distace": 1.53590595706412,
"review_count": 0,
"liked": false
}
}
]
回复:我想要的
{
"nearby_restaurants": [
{
"distace": 1.53590595706412,
"review_count": 0,
"liked": false
}
],
"popular_restaurants": [
{
"distace": 1.53590595706412,
"review_count": 0,
"liked": false
}
]
}
我正在尝试创建json但无法创建正确的。我的响应与我想要的不相似。请帮助解决。
答案 0 :(得分:1)
json={}
all_results={}
restaurants=[]
for i in restaurant:
restaurant=Restaurant.objects.get(id=i.id)
restaurant_serializer=RestaurantSerializers(restaurant)
json['distace'] = i.distance
json['review_count']=reviews
json['liked']=False
restaurants.append(json)
all_results['nearby_restaurants']=restaurants
all_results['popular_restaurants']=restaurants
return all_results
您的代码狙击返回all_results
是一个列表,所以您得到的是列表而不是字典。因此您可以重新定义all_results
来决定和更改一些代码。
我没有在脚本中进行测试,但是您可以尝试。
最后,您可能尝试使用pdb调试代码。这是有关pdb的一篇不错的文章 python-debugging-pdb
答案 1 :(得分:0)
因此,基本上,您需要一个字典,但是要得到一个数组。
要获得想要的东西,您应该具备:
all_results={
'nearby_restaurants': [],
'popular_restaurants': []
}
(...)
all_results['nearby_restaurants'].append(json)
all_results['popular_restaurants'].append(json)
这是考虑到您的json变量包含以下值:
{
"distace": 1.53590595706412,
"review_count": 0,
"liked": false
}
答案 2 :(得分:0)
our=[{
"popular_restaurants":{"distace": 1.53590595706412,"review_count": 0,"liked": False},
"nearby_restaurants": {"distace": 1.53590595706412,"review_count": 0,"liked": False}
}]
desired={
"nearby_restaurants": [{"distace": 1.53590595706412,"review_count": 0,"liked": False}],
"popular_restaurants": [{"distace": 1.53590595706412,"review_count": 0,"liked": False}]
}
new_dict={}
new_json= (our[0])
nearby=[]
pop=[]
nearby.append((new_json['nearby_restaurants']))
pop.append((new_json['popular_restaurants']))
new_dict['popular_restaurants']=pop
new_dict['nearby_restaurants']=nearby
print (new_dict)