Python: str.startswith() 和字符串比较“==”不起作用
Python: str.startswith() and string comparison "==" not working
我正在尝试从文件中读取字符串并查找以 "'param."
开头的单词 这是我的代码:
# -*- coding: utf-8 -*-
inputfile = open('abc.json', 'r')
fieldnametemp = []
for line in inputfile:
for word in line.split():
if(word == "'fieldname':"):
fieldnametemp.append(line.split(':')[1])
for element in fieldnametemp:
print element
if(element.startswith("'param.")):
print 1
else:
print 0
这是我的输出:
'param.design_key',
0
'param.abc',
0
'param.def',
0
即使它以“'param.”开头。它打印 0.
我也试过用
if(element.split('.')[0] == "'param."):
而不是
if(element.startswith("'param.")):
但输出是一样的。怎么了,我该怎么办?
基于此
for word in line.split():
if(word == "'fieldname':"):
fieldnametemp.append(line.split(':')[1])
fieldnametemp
中的每个元素都以空格开头。所以当你做 element.startswith("'param.")
时 element
的内容也以空格开头,所以你实际上是在做:
" 'param.abc'".startswith("'.param")
这显然是错误的。您需要包含空格:
element.startswith(" 'param.")
我正在尝试从文件中读取字符串并查找以 "'param."
开头的单词 这是我的代码:
# -*- coding: utf-8 -*-
inputfile = open('abc.json', 'r')
fieldnametemp = []
for line in inputfile:
for word in line.split():
if(word == "'fieldname':"):
fieldnametemp.append(line.split(':')[1])
for element in fieldnametemp:
print element
if(element.startswith("'param.")):
print 1
else:
print 0
这是我的输出:
'param.design_key',
0
'param.abc',
0
'param.def',
0
即使它以“'param.”开头。它打印 0.
我也试过用
if(element.split('.')[0] == "'param."):
而不是
if(element.startswith("'param.")):
但输出是一样的。怎么了,我该怎么办?
基于此
for word in line.split():
if(word == "'fieldname':"):
fieldnametemp.append(line.split(':')[1])
fieldnametemp
中的每个元素都以空格开头。所以当你做 element.startswith("'param.")
时 element
的内容也以空格开头,所以你实际上是在做:
" 'param.abc'".startswith("'.param")
这显然是错误的。您需要包含空格:
element.startswith(" 'param.")