亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 從數組中提取匹配的 JSON 值

Python 從數組中提取匹配的 JSON 值

素胚勾勒不出你 2023-04-18 17:37:29
我正在調用一個以數組形式提供輸出的 API。這是數組數據。["{'meta':'projects/us/conf/94eb2c1f0574'}","{'del':'projects/us/conf/001a1143e726'}"]在這里,我想提取關鍵元數據的值。預期輸出:projects/us/conf/94eb2c1f0574我怎樣才能用 Python 做到這一點?另外,輸出是正確的數組結構嗎?
查看完整描述

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


查看完整回答
反對 回復 2023-04-18
?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

快速修復是使用 json.loads 將 data[0] 轉換為 dict -

value = json.loads(d[0].replace('\'','"'))['meta']


查看完整回答
反對 回復 2023-04-18
?
POPMUISE

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'


查看完整回答
反對 回復 2023-04-18
?
森欄

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'


查看完整回答
反對 回復 2023-04-18
  • 4 回答
  • 0 關注
  • 245 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號