Python:str.startswith()和字符串比较" =="不工作

时间:2018-02-08 10:18:26

标签: python string comparison python-2.x python-2.6

我试图从文件中读取字符串并找到以"'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.")): 

但输出相同。什么错了,我该怎么办?

1 个答案:

答案 0 :(得分:1)

基于此

for word in line.split():
        if(word == "'fieldname':"):
            fieldnametemp.append(line.split(':')[1])

fieldnametemp中的每个元素都以空格开头。因此,当您elementelement.startswith("'param.")的内容也以空白开头,所以您实际上在做:

 " 'param.abc'".startswith("'.param")

这显然是假的。你需要包含空格:

element.startswith(" 'param.")