2017-11-13 4 views
1
def getJson(filmList): 
film_json = FilmJson() 
for video in filmList: 
    videoName = video.videoName 
    videoUrl = video.videoUrl 
    videoTime = video.videoTime 
    dic = {} 
    if videoName is None: 
     break 

    if videoUrl is None: 
     dic['videourl'] = "" 
    else: 
     dic['videourl'] = videoUrl 


    if videoTime is None: 
     dic['videotime'] = "" 
    else: 
     dic['videotime'] = videoTime 
    dic['videoname'] = videoName 


    film_json.videolist.append(dic) 

dict__ = film_json.__dict__ 
print(dict__) 

return dict__ 

ブラウザGETリクエストPythonのjson.dumps()のデータは、それが

バックエンド印刷

{'filmid': '', 'videolist': [{'videourl': '', 'videotime': '', 'videoname': 'Lifeline'}, {'videourl': '', 'videotime': '', 'videoname': 'Ex Static'}, {'videourl': '', 'videotime': '', 'videoname': 'test'}]} 

を送るきれいにする方法を、\含まれています。

@api_view(http_method_names=['GET']) 
@permission_classes((permissions.AllowAny,)) 
def sendFilm(request): 
    .... 
    myjson = jsonbean.getJson(filmList) 



    return Response(json.dumps(myjson,ensure_ascii=False)) 

郵便配達のテスト問題に

答えて

0

を解決する方法

"{\"filmid\": \"\", \"videolist\": [{\"videourl\": \"\", \"videotime\": \"\", \"videoname\": \"Lifeline\"}, {\"videourl\": \"\", \"videotime\": \"\", \"videoname\": \"Ex Static\"}, {\"videourl\": \"\", \"videotime\": \"\", \"videoname\": \"test\"}]}" 

を引き起こす取得あなたは)(json.dumpsを使用してJSONに再びJSONオブジェクトをコードしています。 json.loads()をもう一度使用すると、\が消えてしまいます。

return Response(json.loads(json.dumps(myjson,ensure_ascii=False))) 
#OR 
return Response(myjson) 
+0

ありがとうございました –

+0

なぜ私の答えは投票を持っていないのですか? – pissall

+0

私は知らない! –

2

ダブルダンプしました。

json.dumps()を実行するだけで済みます。このエラーは、すでにJSONであるオブジェクトに対してjson.dumps()を実行したために発生します。

return Response(myjson)は、\"のない通常のオブジェクトを返す必要があります。

myjsonはすでにJSON文字列であり、辞書オブジェクトではありません。

1

レスポンスにデータを渡すときにjson.dumpsを実行しないでください。

関連する問題