0

次のような投稿パラメータを送信します

css=request.POST['q']
css=css.encode('utf-8')

そしてcssには次のようなコンテンツがあります

{
    "container": {
        "border-color": "white",
        "border-width": "0px",
        "height": "419px",
        "width": "200px",
        "border-style": "solid",
        "position": "relative",
        "background-color": "white"
    },
    "elemorder": {
        "productcode": {
            "font-size": "14px",
            "line-height": "18px",
            "color": "blue",
            "border-width": "0px",
            "letter-spacing": "0px",
            "text-decoration": "none",
            "height": "40px",
            "width": "200px",
            "border-color": "white",
            "font-weight": "normal",
            "font-style": "normal",
            "position": "absolute",
            "overflow": "hidden",
            "font-family": "Arial",
            "border-style": "solid",
            "display": "block",
            "background-color": "#3385D6",
            "text-align": "center"
        },
        "name": {
            "font-size": "14px",
            "line-height": "18px",
            "color": "blue",
            "border-width": "0px",
            "letter-spacing": "0px",
            "text-decoration": "none",
            "height": "40px",
            "width": "200px",
            "border-color": "white",
            "font-weight": "normal",
            "font-style": "normal",
            "position": "absolute",
            "overflow": "hidden",
            "font-family": "Arial",
            "border-style": "solid",
            "display": "block",
            "background-color": "#3385D6",
            "text-align": "center"
        },
        "url": {
            "font-size": "14px",
            "line-height": "18px",
            "color": "blue",
            "border-width": "0px",
            "letter-spacing": "0px",
            "text-decoration": "none",
            "height": "40px",
            "width": "200px",
            "border-color": "white",
            "font-weight": "normal",
            "font-style": "normal",
            "position": "absolute",
            "overflow": "hidden",
            "font-family": "Arial",
            "border-style": "solid",
            "display": "block",
            "background-color": "#3385D6",
            "text-align": "center"
        },
        "price": {
            "font-size": "14px",
            "line-height": "18px",
            "color": "blue",
            "border-width": "0px",
            "letter-spacing": "0px",
            "text-decoration": "none",
            "height": "40px",
            "width": "200px",
            "border-color": "white",
            "font-weight": "normal",
            "font-style": "normal",
            "position": "absolute",
            "overflow": "hidden",
            "font-family": "Arial",
            "border-style": "solid",
            "display": "block",
            "background-color": "#3385D6",
            "text-align": "center"
        },
        "id": {
            "font-size": "14px",
            "line-height": "18px",
            "color": "blue",
            "border-width": "0px",
            "letter-spacing": "0px",
            "text-decoration": "none",
            "height": "40px",
            "width": "200px",
            "border-color": "white",
            "font-weight": "normal",
            "font-style": "normal",
            "position": "absolute",
            "overflow": "hidden",
            "font-family": "Arial",
            "border-style": "solid",
            "display": "block",
            "background-color": "#3385D6",
            "text-align": "center"
        },
        "imgurl": {
            "font-size": "14px",
            "line-height": "18px",
            "color": "blue",
            "border-width": "0px",
            "letter-spacing": "0px",
            "text-decoration": "none",
            "height": "227",
            "width": 200,
            "border-color": "white",
            "font-weight": "normal",
            "font-style": "normal",
            "position": "absolute",
            "overflow": "hidden",
            "font-family": "Arial",
            "border-style": "solid",
            "display": "block",
            "background-color": "#3385D6",
            "text-align": "center",
            "left": 0,
            "top": 80
        },
        "desc": {
            "font-size": "13px",
            "line-height": "18px",
            "color": "blue",
            "border-width": "0px",
            "letter-spacing": "0px",
            "text-decoration": "none",
            "height": "69",
            "width": "200px",
            "border-color": "white",
            "font-weight": "normal",
            "font-style": "normal",
            "position": "absolute",
            "overflow": "auto",
            "font-family": "Arial",
            "border-style": "solid",
            "display": "block",
            "background-color": "#3385D6",
            "text-align": "center",
            "left": 0,
            "top": 307
        }
    }
}

そしてそれをcss変数に入れます。私は辞書を次のように配置しようとしています

elemorder=css['elemorder']
container=css['container']

しかし、エラー文字列のインデックスはstrではなく整数でなければなりません。2つの変数(辞書)のelemorderとcontainerを作成するにはどうすればよいですか?

4

2 に答える 2

3

POST リクエストから、dict ではなく str を取得します。次のようなjson libを使用してみてください

import json
css = json.loads(request.POST['q'])
于 2012-05-18T08:18:05.760 に答える
2

データをシリアル化し、Django アプリに渡してから逆シリアル化する必要があります。

JSON シリアル化は、タスクに適しているようです。

于 2012-05-18T08:18:20.147 に答える