代码之家  ›  专栏  ›  技术社区  ›  Tibberzz

如何在Python中将JSON转换为字符串

  •  0
  • Tibberzz  · 技术社区  · 7 年前

    给定输入:

    {"fruit": "apple"}
    

    我需要生成输出:

    {"Message":{\"fruit\": \"apple\"}}
    

    下面是我的示例代码:

    >>> import json
    >>> 
    >>> input={}
    >>> input["fruit"]="apple"
    >>> print(json.dumps(input))
    {"fruit": "apple"}
    >>> print(json.dumps(json.dumps(input)))
    "{\"fruit\": \"apple\"}"                      # this looks right
    >>> 
    >>> output={}
    >>> output["Message"]=json.dumps(json.dumps(input))
    >>> print(output)
    {'Message': '"{\\"fruit\\": \\"apple\\"}"'}    # unexpected
    

    我的希望是印刷品的产量加倍json.dumps文件将输出的消息字段设置为,但它添加了额外的转义。

    所以我尝试了这个:

    >>> output["Message"]=json.dumps(input)
    >>> print(output)
    {'Message': '{"fruit": "apple"}'}
    

    0 回复  |  直到 7 年前
        1
  •  1
  •   Mike Scotty    7 年前

    import json
    d = {
        "Message": json.dumps( {"fruit": "apple"} )
    }
    print(json.dumps(d))
    

    输出:

    {"Message": "{\"fruit\": \"apple\"}"}
    

    {"Message":{\"fruit\": \"apple\"}} 因为这不是有效的JSON。

    顺便说一下,您不会“将JSON转换为字符串”,因为根据定义,JSON已经是字符串了。