我正在尝试使用Python将一些查询自动化为一个API。问题在于请求需要以特殊的方式创建,而我只是无法使其工作。这是我在创建时遇到的问题的一部分。Python使用创建一个字符串并在json请求中发送它
payload = "{\n \"filter\": {\n \"name\":[\"name1\", \"name2\"]\n }"
其中name1和name2是可变的,并且是从列表创建的。我试图做到这一点只是先创建一个函数来创建
[\"name1\", \"name2\"]
这是函数
def create_string(list_of_names):
#Creates the string of line items we want data from
start = '[\\"%s\\"' % list_of_names[0]
for i in list_of_names[1 : ]:
start += ', \\"%s\\"' %(i)
start += "]"
return start
list_of_names = ['name1', 'name2']
然后只用%s零件将其添加到字符串。
payload = "{\n \"filter\": {\n \"name\":%s\n }" % create_string(list_of_names)
这不起作用,我可以认为这与\是如何在Python中使用有关。
create_string函数创建不同的输出依赖,如果我打印或不打印。
a = create_string(list_of_names)
print(a)
创建我需要用%s
[\"name1\", \"name2\", \"name3\"]
而只是输出
'[\\"name1\\", \\"name2\\", \\"name3\\"]'
所以我的问题是,那么如何通过打印(一)部分传递字符串到有效载荷字符串中。有没有人有这样的解决方案?
你有一个不使用json模块的好理由:'import json; str = json.dumps({'filter':{'name':list_of_names}})' –