只写一个回复,为什么?
Writing only one response, why?
正在尝试获取每个响应以进行保存。
到目前为止,它只打印所有响应并保存一个。
请帮忙。
编辑:需要帮助保存所有回复。
import requests
import json
url = 'https://www.virustotal.com/vtapi/v2/file/report'
resource = []
with open("/PATH/hashes.txt", "r") as f:
for resource in f:
print(resource)
params = {'apikey': 'API KEY HERE', 'resource': resource}
response = requests.get(url, params=params)
response1 = response.json()
print(response.json())
with open('data.json', 'w') as J:
json.dump(response1, J, indent=6)
已更新!!感谢大家的帮助!
import requests
import json
url = 'https://www.virustotal.com/vtapi/v2/file/report'
params = {'apikey': 'API KEY HERE'}
resources = []
with open("/PATH/hashes.txt", "r") as f:
for resource in f:
print(resource)
params['resource'] = resource
response = requests.get(url, params=params)
json_data = response.json()['sha256']
print(json_data)
resources.append(json_data)
with open('data.json', 'w') as J:
json.dump(resources, J, indent=6)
J.close()
f.close()
在循环的每次迭代中,您都会覆盖 data.json
。相反,您可以通过使用 a
模式(“附加”)而不是 w
模式(“写入”)打开它来附加到它:
with open('data.json', 'a') as J:
# Here -------------^
import requests
import json
url = 'https://www.virustotal.com/vtapi/v2/file/report'
params = {'apikey': 'API KEY HERE'}
resources = []
with open("/PATH/hashes.txt", "r") as f:
for resource in f:
print(resource)
params['resource'] = resource
response = requests.get(url, params=params)
json_data = response.json()
print(json_data)
resources.append(json_data)
with open('data.json', 'w') as f:
json.dump(resources, f, indent=6)
在您的原始代码中,您在循环的每次迭代中都覆盖了 data.json
。
将每个 JSON 响应附加到 resources
列表(注意名称中的复数 - 在您的代码中,您只是通过在 for 循环中重用名称 resource
来覆盖空列表)。然后将列表(它将是 JSON 数组)转储到 JSON 文件中。
正在尝试获取每个响应以进行保存。 到目前为止,它只打印所有响应并保存一个。 请帮忙。 编辑:需要帮助保存所有回复。
import requests
import json
url = 'https://www.virustotal.com/vtapi/v2/file/report'
resource = []
with open("/PATH/hashes.txt", "r") as f:
for resource in f:
print(resource)
params = {'apikey': 'API KEY HERE', 'resource': resource}
response = requests.get(url, params=params)
response1 = response.json()
print(response.json())
with open('data.json', 'w') as J:
json.dump(response1, J, indent=6)
已更新!!感谢大家的帮助!
import requests
import json
url = 'https://www.virustotal.com/vtapi/v2/file/report'
params = {'apikey': 'API KEY HERE'}
resources = []
with open("/PATH/hashes.txt", "r") as f:
for resource in f:
print(resource)
params['resource'] = resource
response = requests.get(url, params=params)
json_data = response.json()['sha256']
print(json_data)
resources.append(json_data)
with open('data.json', 'w') as J:
json.dump(resources, J, indent=6)
J.close()
f.close()
在循环的每次迭代中,您都会覆盖 data.json
。相反,您可以通过使用 a
模式(“附加”)而不是 w
模式(“写入”)打开它来附加到它:
with open('data.json', 'a') as J:
# Here -------------^
import requests
import json
url = 'https://www.virustotal.com/vtapi/v2/file/report'
params = {'apikey': 'API KEY HERE'}
resources = []
with open("/PATH/hashes.txt", "r") as f:
for resource in f:
print(resource)
params['resource'] = resource
response = requests.get(url, params=params)
json_data = response.json()
print(json_data)
resources.append(json_data)
with open('data.json', 'w') as f:
json.dump(resources, f, indent=6)
在您的原始代码中,您在循环的每次迭代中都覆盖了 data.json
。
将每个 JSON 响应附加到 resources
列表(注意名称中的复数 - 在您的代码中,您只是通过在 for 循环中重用名称 resource
来覆盖空列表)。然后将列表(它将是 JSON 数组)转储到 JSON 文件中。