我正在提取JSON响应并将其数据存储到python列表中。响应中的一些字段采用“unicode”格式,因此我将其转换为“utf-8”格式,然后将其存储到列表中。现在问题是,一些unicode字段返回'NoneType',在任何情况下都无法编码或操作。所以我写了一个IF ELSE块,首先检查它是否为'None'。但我认为它没有按预期工作。以下是我的代码:
res = []
for a in response['Data'] :
res.append(a ['Id']['Id']) #ParticipatingIndividualId
res.append(a ['UserId']) #UserId
res.append(a ['DisplayName']) # FirstName_EN
if (a ['Company']['en']) is None :
res.append(None)
else :
res.append(a ['Company']['en']).encode('utf-8') #ParticipatingCompanyName_EN
...
...
但是在运行之后,它仍然给出了一个错误,说“NoneType对象没有属性编码”。所以我想我的IF ELSE逻辑不起作用。或者也可能存在其他一些问题。任何人都可以建议这里有什么问题。这将是一个很大的帮助。
答案 0 :(得分:1)
如果和其他人没有同时运行。这是不可能的
您需要对字符串进行编码,而不是对追加函数
进行编码 a['Company']['en'].encode('utf-8')
您也可以在一行中完成所有操作
res.append(None if a['Company']['en']) is None else a['Company']['en'].encode('utf-8'))