在我的python脚本中,我试图遍历包含域名的文本文件,并将其填充到我的JSON请求正文中。 API调用所需的正确格式为
payload = {
"threatInfo": {
"threatEntries": [
{"url": "http://malware.wicar.org/"}, {"url": "http://urltocheck2.org"},
]
}
}
我用来复制此变量的变量称为mystring
domain_list_formatted = []
for item in domain_list:
domain_list_formatted.append("""{"url": """ + '"{}"'.format(item) + "},")
domain_list_formatted_tuple= tuple(domain_list_formatted)
mystring = ' '.join(map(str, (domain_list_formatted_tuple)))
打印mystring会得到需要传递给有效负载变量的结果
{"url": "http://malware.wicar.org/"},
{"url": "http://www.urltocheck2.org/"},
但是,我想循环此循环,所以我添加了以下循环
for item in domain_list_formatted_tuple:
printcorrectly = ' '.join(map(str, (domain_list_formatted_tuple)))
payload["threatInfo"]["threatEntries"] = [printcorrectly]
这是结果:
['{"url": "http://malware.wicar.org/"}, {"url": "http://www.urltocheck2.org/"}']
括号外的单引号将其完全删除。 for循环如何以造成此问题的方式修改或编码有效负载?您的帮助将不胜感激。
答案 0 :(得分:0)
您的代码:
for item in domain_list_formatted_tuple:
printcorrectly = ' '.join(map(str, (domain_list_formatted_tuple)))
payload["threatInfo"]["threatEntries"] = [printcorrectly]
应该是:
for item in domain_list_formatted_tuple:
printcorrectly = ' '.join(map(str, (domain_list_formatted_tuple)))
payload["threatInfo"]["threatEntries"] = printcorrectly
在printcorrectly
周围没有括号
如果有:
a = ['xxx']
print(a)
您将获得带有括号和引号的输出['xxx']
。