2017-08-11 7 views
0

辞書である入力パラメータを作成しようとしていますが、通常の辞書との比較で形式が異なります。 私は既にこれがありますpython 3.5:残りのapiで受け入れる辞書の形式を変更する方法

{"sort": {"-p1.m_visits_all"}} 

と私は私の残りのクエリで有効なものである辞書のフォーマットを変更しようとしています、最終的なフォーマットは、この

{"sort": "{-p1.m_visits_all}"} 

ようにする必要がありますが、私は何をするのか分かりませんそれ。助言がありますか?

答えて

0

dictの値をstr(...)の文字列に変換することができます。 今、あなたの例では、次のようになります。

{"sort": "{'-p1.m_visits_all'}"} 

次に、あなたが値 内のすべての単一引用符(')を削除します。今あなたが持っている:

{"sort": '{-p1.m_visits_all}'} 

最後に、あなたがjson.dumps()とJSONに変換し、あなたもとでアップ:

'{"sort": "{-p1.m_visits_all}"}' 

ここdictをフォーマットしてからJSON文字列を返す関数は次のようになります。

def format_for_api(params): 
    formatted = {} 
    for k, v in params.items(): 
    params[k] = str(v).replace("'", "") 

    return json.dumps(formatted) 

あるいは、圧縮を使用して:

def format_for_api(params): 
    return json.dumps({k: str(v).replace("'", "") for k, v in params.items()}) 

ハッピーコーディング:)

+0

遅れて、ありがとう、とても便利でした!私が出力する必要があるので、私がコマンドしたいのは唯一のものなので、私はjson.dumpsを使用していないので、dictとして使用する必要があります。 –

+0

@Maryam:ああ、愚かな私!私は今あなたの質問から、JSONについて言及していないことを理解しています。 – ContinuousLoad

+0

あなたのソリューションは私のために働いたと心配しないでください;)ありがとう –

関連する問題