4 回答

TA貢獻1951條經驗 獲得超3個贊
如果您的意思是獲取鍵為元的值,則可以使用next
和理解:
data = ["{'meta':'projects/us/conf/94eb2c1f0574'}","{'del':'projects/us/conf/001a1143e726'}"]
>>> next(v for (k, v) in map(dict.items, data) if k == 'meta') projects/us/conf/94eb2c1f0574

TA貢獻1812條經驗 獲得超5個贊
快速修復是使用 json.loads 將 data[0] 轉換為 dict -
value = json.loads(d[0].replace('\'','"'))['meta']

TA貢獻1765條經驗 獲得超5個贊
假設這是數組加載到變量data,data[0]是一鍵字典'meta'。從那里,您可以通過傳遞名稱來訪問該密鑰。
>>> data = [{'meta':'projects/us/conf/94eb2c1f0574'}, {'del':'projects/us/conf/001a1143e726'}]
>>> data[0]['meta']
'projects/us/conf/94eb2c1f0574'

TA貢獻1810條經驗 獲得超5個贊
如果您的輸入看起來確實像那樣(糟糕的 api 設計,或 API 中的錯誤)
你可以將每個加載為 json
fixed = [json.loads(string_thing.replace("'",'"')) for string_thing in response_array]
>>> fixed[0]['meta']
u'projects/us/conf/94eb2c1f0574'
>>> fixed[1]['del']
u'projects/us/conf/001a1143e726'
如果你想讓它成為一個大字典
data = {}
for string_thing in response_array:
# this assumes the strings are valid json and always dicts
data.update(json.loads(string_thing.replace("'",'"')))
>>> data
{u'meta': u'projects/us/conf/94eb2c1f0574', u'del': u'projects/us/conf/001a1143e726'}
>>> data['meta']
u'projects/us/conf/94eb2c1f0574'
>>> data['del']
u'projects/us/conf/001a1143e726'
添加回答
舉報