2016-11-09 29 views
0

我使用Rest framework獲取JSON數據並解析它們。現在我不知道如何訪問JSON數據的第二個參數,用於解析我見過this link.json使用JSON後循環.Parser

代碼視圖的JSON:

@api_view(['POST']) 
@parser_classes((JSONParser,)) 
def product_list(request): 
    """ 
    List all products which name of them is in the json data 
    """ 

    if request.method == 'POST': 
     print(request.data) 
     MarketProduct=[] 
     for item in request.data: 
      print(item) 
      try: 
       product=Market.objects.get(name=item) 
       MarketProduct.append(product) 
      except Market.DoesNotExist: 
       return Response(status=status.HTTP_404_NOT_FOUND) 
     serializer = MarketSerializer(MarketProduct, many=True) 
     return Response(serializer.data) 

代碼網址:

urlpatterns = [ 

    url(r'^listproducts/$', views.product_list), 


] 

這裏在這一行: for item in request.data: item只有每個json的第一個參數。

我已經發送的JSON是:

{'hello': '1', 'bye': '2'} 
印刷項目

,只有「你好」和「再見」 prints.but我要訪問「1」和「2」了。

對我來說使用Django框架非常重要。 我無法在這種情況下得到合適的方式使用json.load(raw)

回答

1

這與解析JSON沒有任何關係。 DRF已經將JSON解析爲Python字典,如果您使用json.loads,則會得到完全相同的結果。

當你迭代一個字典,你只是得到鑰匙。要得到這些值,您需要遍歷.items()

for item, value in request.data.items(): 
     print(item, value)