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

如何使用“代替”生成Json字符串

  •  0
  • Markus  · 技术社区  · 6 年前

    我想用 " 而不是 '

    countryid="be"
    msg = "{'field1': 'abc','field2': '"+countryid+"', 'field3': '1'}"
    

    我试着用 """ 具体如下:

    msg = """{"field1": "abc","field2": """"+countryid+"""", "field3": "1"}"""
    

    {"field1": "abc","field2": +countryid+, "field3": "1"}
    

    而不是:

    {"field1": "abc","field2": "be", "field3": "1"}
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Toni    6 年前

    我会回答你的问题,不过我认为你提出的问题可能有点错。

    您面临的问题是由于 国家ID

    msg = """{"field1": "abc","field2": """"+countryid+"""", "field3": "1"}"""
                                        ^^^^
                                        ||||
    

    用于字符串文本的python文档说明:

    在三引号字符串中,允许使用非转义换行符和引号 (并被保留),除了连续三个未转义的引号 字符串,即“或”。)

    1) 避开有问题的引用:

    msg = """{"field1": "abc","field2": \""""+countryid+"""", "field3": "1"}"""
                                        ^
                                        |
    

    2) 使用单引号:

    msg = '{"field1": "abc","field2": "'+countryid+'", "field3": "1"}'
    

    3) 使用字符串格式:

    msg = """{"field1": "abc","field2": "%s", "field3": "1"}""" % countryid
                                          ^                     ^    ^
                                          |                     |    |
    

    这是Python语言的一个领域,打破了“一种显而易见的做事方法”的“Python禅”原则

    注意,我上面解释的所有方法实际上都不是生成JSON的好方法。

    如果我是你,我会这样做:

    import json
    countryid= "someone's ID"
    message = {'field1': 'abc','field2': countryid,'field3': '1'}
    msg = json.dumps(messsage)
    
        2
  •  2
  •   Rafał    6 年前

    可以使用json模块

    import json
    countryid="be"
    msg = {
        'field1': 'abc',
        'field2': countryid,
        'field3': '1'
    }
    print(json.dumps(msg))