我尝试了所有我发现了这样的方法没有一个是有问题的工作对我来说检查是否JSON值为空
的JSON(修剪)
json_data = requests.post(api_url, self.build_payload().json()
{
"gmetadata":[
{
"title_jpn":"",
}
]
}
,长度为curl -POST http://api.example.com
这是我的方法:
# TODO: (core) Don't print empty string for japanese title if none given
@staticmethod
def build_title_jpn_string(json_data):
if 'title_jpn' in json_data['gmetadata'][0] is not "":
return 'Japanese Title: ' + pprint.pformat(json_data['gmetadata'][0]['title_jpn'])
我不希望它执行时,['gmetadata '] [0] ['title_jpn']是无。
我试图复式变化
if 'title_jpn' in json_data['gmetadata'][0] is not "":
return 'Japanese Title: ' + pprint.pformat(json_data['gmetadata'][0]['title_jpn'])
藏汉作为
if 'title_jpn' in json_data['gmetadata'][0] is not None:
return 'Japanese Title: ' + pprint.pformat(json_data['gmetadata'][0]['title_jpn'])
if json_data['gmetadata'][0]['title_jpn'] is not None:
return 'Japanese Title: ' + pprint.pformat(json_data['gmetadata'][0]['title_jpn'])
if json_data['gmetadata'][0].get('title_jpn') is not None:
return 'Japanese Title: ' + pprint.pformat(json_data['gmetadata'][0]['title_jpn'])
if json_data['gmetadata'][0].get('title_jpn'):
return 'Japanese Title: ' + pprint.pformat(json_data['gmetadata'][0]['title_jpn'])
他们大多给我的错误:“无法将‘NoneType’对象隐含STR”因为我希望编译器试图转换字符串。为什么“不是None”不适用于空的json字符串?
通常,['gmetadata'] [0] ['title_jpn']是一个unicode字符串。偶尔没有提供名称,因此JSON值将被设置为“”。我如何检查是否给出了该值? – siryx
当我尝试使用你的代码时,我得到“错误:'dict'对象没有属性'find'” – siryx
@siryx听起来像你正在使用没有'.find()'方法的老版本的python 。 – Soviut