如果这是一个基本修复和帖子的长度,我道歉,但我是Python的新手。为了上下文的目的,我还包含了一大块脚本。
我正在使用脚本将扫描数据从JSON拉入MySQL数据库。该脚本工作正常,直到更新发布。
现在,当我运行脚本时,我收到错误:
结果在resultc ['response'] ['results']: TypeError:字符串索引必须是整数
在此更新之前,我知道每个值的数据类型,但这已经改变,我无法确定在哪里。有没有办法将每个值转换为字符串?
# Send the cumulative JSON and then populate the table
cumresponse, content = SendRequest(url, headers, cumdata)
resultc = json.loads(content)
off = 0
print "\nFilling cumvulndata table with vulnerabilities from the cumulative database. Please wait..."
for result in resultc['response']['results']:
off += 1
print off, result
cursor.execute ("""INSERT INTO cumvulndata(
offset,pluginName,repositoryID,
severity,pluginID,hasBeenMitigated,
dnsName,macAddress,familyID,recastRisk,
firstSeen,ip,acceptRisk,lastSeen,netbiosName,
port,pluginText,protocol) VALUES
(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,(FROM_UNIXTIME(%s)),%s,%s,(FROM_UNIXTIME(%s)),%s,%s, %s,%s)""" , (off,result["pluginName"],result["repositoryID"]),result["severity"]),
result["pluginID"]), result["hasBeenMitigated"]),result["dnsName"],
result["macAddress"],result["familyID"]),result["recastRisk"]),
result["firstSeen"],result["ip"],result["acceptRisk"],result["lastSeen"],
result["netbiosName"],result["port"],result["pluginText"],result["protocol"]))
答案 0 :(得分:1)
把它放在for循环之前,找出哪个对象是字符串(我猜它可能是第二个)
print type(resultc)
print type(resultc['response'])