定义的RFC
4627
application/json表示:
An object is an unordered collection of zero or more name/value pairs
和:
The names within an object SHOULD be unique.
这意味着AlchemyAPI不应
"subType"在同一个对象内返回多个名称,并声称它是JSON。
您可以尝试以XML格式(
outputMode=xml)请求相同的内容,以避免结果出现歧义或将重复的键值转换为列表:
import simplejson as jsonfrom collections import defaultdictdef multidict(ordered_pairs): """Convert duplicate keys values to lists.""" # read all values into lists d = defaultdict(list) for k, v in ordered_pairs: d[k].append(v) # unpack lists that have only 1 item for k, v in d.items(): if len(v) == 1: d[k] = v[0] return dict(d)print json.JSonDeprer(object_pairs_hook=multidict).depre(text)
例
text = """{ "type": "Person", "subType": "Athlete", "subType": "AwardWinner"}"""输出量
{u'subType': [u'Athlete', u'AwardWinner'], u'type': u'Person'}


