我试图解析json并在Python中使用for循环。
obj
是json,而且您知道它就像字典中字典中的字典...依此类推。
所以我解析json并将其作为for
循环,如下所示:
all = obj['products']
for a in obj:
recommendSellerScore.append(a['recommendSellerScore'])
但是,问题是'recommendSellerScore'
,这是某些列表中不存在的密钥。
结果是我要打印'None'
不存在的recommendSellerScore
,并打印recommendSellerScore
存在的值。
for a in all:
if a['recommendSellerScore'] in all:
recommendSellerScore.append(a['recommendSellerScore'])
else:
continue
print('None')
我在上面运行了此代码,但由于'recommendSellerScore'
不存在而出现错误。
for a in all:
if ['recommendSellerScore'] in all:
recommendSellerScore.append(a['recommendSellerScore'])
else:
continue
print('None')
这是可行的,但是,由于'recommendSellerScore'
存在于字典的列表中,因此不可迭代。 (我猜)
请修正我的代码,任何意见或建议将不胜感激!
答案 0 :(得分:2)
这是您代码的固定版本(我取出了const MyInput = props => {
const valueHandler = value => {
if (props.value != value) { // user changed a value?
props.changeValue(props.name, value) // then change it in state
props.onChange() // and call evaluate function in parent
}
}
return (
<View style={{padding: 20}}>
<Text>Field {props.name}</Text>
<TextInput
style={{width: 200, border: 1}}
onChangeText={valueHandler}
value={props.value ? props.value.toString() : ''}
/>
</View>
);
}
function mapStateToProps(state, ownProps) {
return {
value: getValue(state, ownProps.name),
}
}
function mapDispatchToProps(dispatch) {
return {
changeValue: (field, value) => dispatch(changeValue(field, value)),
}
}
export default connect(mapStateToProps, mapDispatchToProps)(MyInput)
语句和字符串周围的continue
)
[]
答案 1 :(得分:2)
也许下面的代码适合您?
for a in all:
if "recommendSellerScore" in a:
recommendSellerScore.append(a["recommendSellerScore"])
else:
print("None")
答案 2 :(得分:2)
您可以使用get
的词典方法尝试访问字典值,如果不存在该键,则可以提供一个默认值,如果不指定该键,它将输出{{1} },例如:
None
编辑:如@kederrac所指出的,如果您的数据可以具有key = 'recommendSellerScore'
a = [{key: 1}, {}]
recommendSellerScore = []
for d in a:
score = d.get(key)
if score is not None:
print(score)
recommendSellerScore.append(score)
else:
print('None')
值,并且您有兴趣保留这些{key: None}
值,那么最好询问该键是否确实存在于字典中,例如例如:
None
它将打印:
key = 'recommendSellerScore'
a = [{key: 1}, {key: None}]
recommendSellerScore = []
for d in a:
if key in d.keys():
print(d[key])
recommendSellerScore.append(d[key])
else:
print('None')