我想使用"
而不是'
。
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"}
答案 0 :(得分:2)
您可以使用json模块
import json
countryid="be"
msg = {
'field1': 'abc',
'field2': countryid,
'field3': '1'
}
print(json.dumps(msg))
答案 1 :(得分:2)
我会回答您的问题,但是我认为您所提出的问题可能有误。
您面临的问题是由于 countryid
的起始报价的不幸位置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 3.6及更高版本,或者您愿意使用库,则还有更多选择。
这是Python语言的领域之一,“做某事的一种明显方法”的“禅宗python”原则被打破
请注意,我上面解释的所有方法实际上都不是生成JSON的好方法。
如果我是你,这就是我要做的事情:
import json
countryid= "someone's ID"
message = {'field1': 'abc','field2': countryid,'field3': '1'}
msg = json.dumps(messsage)