2017-09-20 1 views
1

が、私は私のAPIにAjaxのポストを使用する場合、私は怒鳴る情報を取得し、私はこれを説明することができ、このデータ型、見ませんでした:Pythonの奇妙なフォーマットデータとは何ですか?

{ 
    u'params[memory_cpu_address][3][cpu]': u'1\u6838', 
    u'params[bandwidth][bandwidth]': u'1M', 
    u'params[security_setting][example_name]': u'lasd01', 
    u'params[memory_cpu_address][2][model]': u'\u6807\u51c6\u578b\u4e00', 
    u'params[server_count][server_length]': u'1\u53f0', 
    u'params[operating_system][system_edition]': u'Windows2003',  
    u'params[memory_cpu_address][0][address]': u'\u6df1\u5733',  
    u'params[security_setting][user_name]': u'root', 
    u'params[storage][data_disk][disk_length]': u'0', 
    u'params[storage][system_disk][type]': u'SSD', 
    u'params[security_setting][user_password]': u'lasd01',  
    u'params[memory_cpu_address][4][memory]': u'1G', 
    u'params[total_prices][prices]': u'430', 
    u'params[memory_cpu_address][1][usable-area]': u'\u6df1\u5733\u4e00\u533a', 
    u'params[operating_system][system_name]': u'Windows', 
    u'params[storage][data_disk][type]': u'SSD', 
    u'params[time_buying][deta_time]': u'1\u6708', 
    u'params[storage][system_disk][disk_length]': u'40' 
} 

を私のAjaxのコードは次のとおりです。

$.ajax({ 
    type:'post', 
    url:'/app_api/buy_server/', 
    data:{'params':buy_data}, # buy_data is a dictionary in js 
    success:success_func, 
}) 

私のviews.pyコードは:

if request.method == 'POST': 
    post_querydict = request.POST 

    post = post_querydict.dict() 

    print (post) 

通常の辞書形式はどのように取得できますか?このタイプのデータなので、私はこのようなデータを得ることができませんpost.get("params")メソッド。

+0

あなたは 'それがクライアント側またはサーバー側であるかどうかのデータをjsonify'する必要が –

答えて

1

データをPythonで逆シリアル化するJSONとして送信します。

$.ajax({ 
    type: 'post', 
    url: '/app_api/buy_server/', 
    contentType: 'application/json', 
    data: JSON.stringify({'params':buy_data}), 
    success: success_func, 
}) 

...

post_data = json.loads(request.body) 
print(post_data) 
関連する問題