我一直在研究SO中的这一问题,但找不到类似的问题。
这是我的问题: 我有一个像这样序列化的JSON-String
data = json.loads(data)
attr = data['data']
在此数据集中,有两个属性,将其称为@ attr1和@ attr2。这是显示问题的我的测试代码:
print('///')
print(attr['@attr1']) # where attr['@attr1'] is a string and either 'True' (sometimes also 'true') or 'False'
print('+++')
print(attr['@attr2']) # where attr['@attr2'] is a string and either '1' or '0'
print('///')
if attr['@attr1'] == 'True' or attr['@attr1'] == 'true':
print('As True:')
print(attr['@attr1'])
else:
print('As NOT True:')
print(attr['@attr1'])
if attr['@attr2'] == '1':
print('As 1:')
print(attr['@attr2'])
else:
print('As NOT 1:')
print(attr['attr2'])
此脚本的输出为:
# OUTPUT:
///
True
+++
1
///
As NOT True:
True
As NOT 1:
1
Process finished with exit code 0
我在这里想念什么?
答案 0 :(得分:1)
首先,如果有的话,请使用print(type(data[...]))
检查属性的类型。
也许您的数据是 boolean True
和整数1
。
如果类型与str
不同,则比较结果为False
,因为python不会隐式地键入强制类型转换/强制转换(不同于JS)。