Issue with Python code AttributeError: 'NoneType' object has no attribute 'title'
Issue with Python code AttributeError: 'NoneType' object has no attribute 'title'
我正在尝试 运行 下面的代码,但它一直失败,并显示标题中的错误:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/cherrypy/_cprequest.py", line 670, in respond
response.body = self.handler()
File "/usr/local/lib/python2.7/dist-packages/cherrypy/lib/encoding.py", line 217, in call
self.body = self.oldhandler(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py", line 61, in call
return self.callable(*self.args, **self.kwargs)
File "web/800-53-server.py", line 79, in family
control_list.append('%s-%d - %s' % (id, control, id, control, sc.title.title))
AttributeError: 'NoneType' object has no attribute 'title'
它似乎出错的代码块如下:
@cherrypy.expose
def family(self, id="AC", format="html"):
id = id.upper()
family_control_count = {"AC": 25, "AU": 16, "AT": 5, "CM": 11, "CP": 13, "IA": 11, "IR": 10, "MA": 6, "MP": 8,
"PS": 8, "PE": 20, "PL": 9, "PM": 16, "RA": 6, "CA": 9, "SC": 44, "SI": 17, "SA": 22}
families = {"AC": "Access Control", "AU": "Audit and Accountability", "AT": "Awareness and Training", "CM": "Configuration Management",
"CP": "Contingency Planning", "IA": "Identification and Authentication", "IR": "Incident Response", "MA": "Maintenance",
"MP": "Media Protection", "PS": "Personnel Security", "PE": "Physical and Environmental Protection", "PL": "Planning",
"PM": "Program Management", "RA": "Risk Assessment", "CA": "Security Assessment and Authorization",
"SC": "System and Communications Protection", "SI": "System and Information Integrity", "SA": "System and Services Acquisition"}
control_list = []
for control in range(1,family_control_count[id]+1):
sc = SecControl("%s-%d" % (id, control))
control_list.append('<div><a href="/control?id=%s-%d">%s-%d</a> - %s</div>' % (id, control, id, control, sc.title.title))
return """<html>
更多节目如下:
`#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, os.path
import sys
import random
import string
import json
import yaml
import cherrypy
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('web/templates'))
sys.path.append(os.path.join('lib'))
sys.path.append(os.path.join('data'))
from seccontrol import SecControl
from seccontrolviz import SecControlViz
from utilities import *
class StringGenerator(object):
@cherrypy.expose
def index(self):
return """<html>
<head>
<title>800-53 Controls</title>
<link rel="stylesheet" type="text/css" href="/assets/css/main.css">
</head>`
包 GovReady
(我假设这是基于导入语句使用的)依赖于 xsltproc
。您可能已将其安装在 mac OS 上,但未安装在其他 machines 上。它需要安装 sudo apt install xsltproc
或等同于你的 Linux 风格,因为它不是 pip 包。
从您的 800-53-server/lib
目录中尝试 运行 xsltproc --stringparam controlnumber 'AC-1' control2json.xsl ../data/800-53-controls.xml
。您正在调用的函数是该命令的包装器。
安装该程序后,我得到
{ "id": "AC-1",
"title": "ACCESS CONTROL POLICY AND PROCEDURES",
...
}
我正在尝试 运行 下面的代码,但它一直失败,并显示标题中的错误:
Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/cherrypy/_cprequest.py", line 670, in respond response.body = self.handler() File "/usr/local/lib/python2.7/dist-packages/cherrypy/lib/encoding.py", line 217, in call self.body = self.oldhandler(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py", line 61, in call return self.callable(*self.args, **self.kwargs) File "web/800-53-server.py", line 79, in family control_list.append('%s-%d - %s' % (id, control, id, control, sc.title.title)) AttributeError: 'NoneType' object has no attribute 'title'
它似乎出错的代码块如下:
@cherrypy.expose
def family(self, id="AC", format="html"):
id = id.upper()
family_control_count = {"AC": 25, "AU": 16, "AT": 5, "CM": 11, "CP": 13, "IA": 11, "IR": 10, "MA": 6, "MP": 8,
"PS": 8, "PE": 20, "PL": 9, "PM": 16, "RA": 6, "CA": 9, "SC": 44, "SI": 17, "SA": 22}
families = {"AC": "Access Control", "AU": "Audit and Accountability", "AT": "Awareness and Training", "CM": "Configuration Management",
"CP": "Contingency Planning", "IA": "Identification and Authentication", "IR": "Incident Response", "MA": "Maintenance",
"MP": "Media Protection", "PS": "Personnel Security", "PE": "Physical and Environmental Protection", "PL": "Planning",
"PM": "Program Management", "RA": "Risk Assessment", "CA": "Security Assessment and Authorization",
"SC": "System and Communications Protection", "SI": "System and Information Integrity", "SA": "System and Services Acquisition"}
control_list = []
for control in range(1,family_control_count[id]+1):
sc = SecControl("%s-%d" % (id, control))
control_list.append('<div><a href="/control?id=%s-%d">%s-%d</a> - %s</div>' % (id, control, id, control, sc.title.title))
return """<html>
更多节目如下:
`#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, os.path
import sys
import random
import string
import json
import yaml
import cherrypy
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('web/templates'))
sys.path.append(os.path.join('lib'))
sys.path.append(os.path.join('data'))
from seccontrol import SecControl
from seccontrolviz import SecControlViz
from utilities import *
class StringGenerator(object):
@cherrypy.expose
def index(self):
return """<html>
<head>
<title>800-53 Controls</title>
<link rel="stylesheet" type="text/css" href="/assets/css/main.css">
</head>`
包 GovReady
(我假设这是基于导入语句使用的)依赖于 xsltproc
。您可能已将其安装在 mac OS 上,但未安装在其他 machines 上。它需要安装 sudo apt install xsltproc
或等同于你的 Linux 风格,因为它不是 pip 包。
从您的 800-53-server/lib
目录中尝试 运行 xsltproc --stringparam controlnumber 'AC-1' control2json.xsl ../data/800-53-controls.xml
。您正在调用的函数是该命令的包装器。
安装该程序后,我得到
{ "id": "AC-1",
"title": "ACCESS CONTROL POLICY AND PROCEDURES",
...
}