Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python检查值是否以_Python - Fatal编程技术网

python检查值是否以

python检查值是否以,python,Python,我们不能检查值是否以字符串开头吗 我有一份口述,其中包括: my_dict = {'category': 'failure', 'logged_product': 'log_prd1', 'product': 'prd1', 'backlog_month_done': None,'TDC': <__main__.TDC object at 0x010F47D0>} for attr, value in my_dict.items() : if value.startswit

我们不能检查值是否以字符串开头吗

我有一份口述,其中包括:

my_dict = {'category': 'failure', 'logged_product': 'log_prd1', 'product': 'prd1', 'backlog_month_done': None,'TDC': <__main__.TDC object at 0x010F47D0>}

for attr, value in my_dict.items() :
    if value.startswith('<__main') :
    #removeit
,因此看起来像是
attr
是一个字符串,但
value
不是

从编辑中,您的一个值似乎是
None
。要解决此问题,您应该在您的
my_dict
中更改此选项:

'backlog_month_done': None
为此:

'backlog_month_done': ''
您还可以检查
value
是否为字符串类型:

for attr, value in my_dict.items() :
    if not isinstance(value, basestring):
        continue
    if value.startswith('<__main') :
    #removeit
对于属性,my_dict.items()中的值:
如果不是isinstance(值、基串):
持续

如果value.startswith(“出现问题是因为
my_dict['backlog\u month\u done']
None

如果出现以下情况,您可以使用中的附加条件修复此问题:

my_dict = {'category': 'failure', 'logged_product': 'log_prd1', 'product': 'prd1', 'backlog_month_done': None,'TDC': <__main__.TDC object at 0x010F47D0>}

for attr, value in my_dict.items() :
    if value and value.startswith('<__main'):
        #removeit
您可以通过检查
是否为
str
来检查并防止:

for attr, value in my_dict.items() :
    if isinstance(value, str) and value.startswith('<__main'):
        #removeit
或者,如果您确定要删除以“开始”开头的任何内容(即使是repr of)
如果value.startswith(“my_dict
的内容是什么?
value
需要是一个字符串或其他具有
startswith
方法的对象。请检查您的值的类型。可能,如果这正是您正在运行的,因为
假设更改空格的人没有更改problem@user1734229什么是真正的error你得到了吗?类似于“AttributeError:'int'对象没有属性'startswtih'”?有没有一种方法可以动态执行此操作?我应该循环检查
my_dict
,并测试
value==None
?如果你想跳过
None
值(或者通常是非字符串类型)是的,你可以检查。我将在一个例子中编辑。问题是 TDC < /Cord>只是一个例子,我的DICT包含了很多值,从 @ USE174229开始,在这种情况下,你需要把它们变成字符串。上面会编辑。@ USE1717229编辑,但是你真的想考虑这是不是正确的方式来做你正在尝试的。在实际代码中使用
repr
通常被认为是一种“代码气味”。看看还有哪些规则定义了要删除的值。
AttributeError: 'TDC' object has no attribute 'startswith'
for attr, value in my_dict.items() :
    if isinstance(value, str) and value.startswith('<__main'):
        #removeit
for attr, value in my_dict.items() :
    if isinstance(value, TDC):
        #removeit
for attr, value in my_dict.items() :
    if repr(value).startswith('<__main'):
        #removeit
for attr, value in my_dict.items() :
    if not isinstance(value, basestring) :
        continue # if you really want to remove it, use del my_dict[attr] here instead