第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將嵌套的 json 響應(yīng)規(guī)范化為具有不一致鍵的任意嵌套級(jí)別的數(shù)據(jù)幀

將嵌套的 json 響應(yīng)規(guī)范化為具有不一致鍵的任意嵌套級(jí)別的數(shù)據(jù)幀

ABOUTYOU 2023-03-16 11:16:27
我正在努力將 JSON 響應(yīng)轉(zhuǎn)換為我想用于各種其他操作的熊貓數(shù)據(jù)框。我已經(jīng)嘗試過此處列出的方法。但問題是我無法json_normalize有效使用,因?yàn)槿绻覍⑺璧逆I作為record_path參數(shù)傳遞,則會(huì)拋出錯(cuò)誤,因?yàn)橹挥幸恍┳侄斡羞@個(gè)鍵,而不是全部。我不想遍歷整個(gè) JSON 并逐個(gè)比較鍵并重新創(chuàng)建我自己的字典對(duì)象。我想獲取帶有uuidand nice_to_have_skills, nice_to_have_skills_path,nice_to_have_experience作為列的數(shù)據(jù)框,在這些列中,可以在 json 對(duì)象中的和鍵nice_to_have下找到這些屬性。nice_to_haveoperands我想"nice_to_have_skill" -> ["user research", "Wireframing / Prototyping"]在我的數(shù)據(jù)框中像這樣nice_to_have_skill提取列名和["user research", "Wireframing / Prototyping"]該列中的值。編輯:如果 JSON 具有任意深度,如何處理它?例如{“nice_to_have”:[{“運(yùn)算符”:“AND”,“操作數(shù)”:[{“運(yùn)算符”:“OR”,“操作數(shù)”:[{“類別”:“語言”,“值”:[{“ value": "Korean", "clusters": []}]}]}]}], "company_name": "Framework", "company_role": ["Manufacturing", "Supply Chain/Procurement"]}是一部分的 JSON 并且可以有任何級(jí)別的嵌套。
查看完整描述

1 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

傳遞d['hits']json_normalize結(jié)果:

d = json.loads(json_text)


In [136]: %time pd.json_normalize(d['hits'])                                                                                                                                                                                                                                       

CPU times: user 2.1 ms, sys: 41 μs, total: 2.14 ms

Wall time: 2.12 ms

Out[136]: 

                                   uuid text_about                                           objectID      search_space is_searchspace                                       nice_to_have                                          must_have          some key          some_key

0  00000000-0000-0000-0000-000000000000  some_text    00000000-0000-0000-0000-000000000000-text_about               NaN            NaN                                                NaN                                                NaN               NaN               NaN

1  00000000-0000-0000-0000-000000000000        NaN  00000000-0000-0000-0000-000000000000-search_space  some json object           True                                                NaN                                                NaN               NaN               NaN

2  00000000-0000-0000-0000-000000000000        NaN  00000000-0000-0000-0000-000000000000-nice_to_have               NaN            NaN  [{'operator': 'AND', 'operands': [{'category':...                                                NaN               NaN               NaN

3  00000000-0000-0000-0000-000000000000        NaN     00000000-0000-0000-0000-000000000000-must_have               NaN            NaN                                                NaN  [{'operator': 'AND', 'operands': [{'category':...               NaN               NaN

4                                   NaN        NaN                                                NaN               NaN            NaN                                                NaN                                                NaN  some json object               NaN

5  10000000-0000-0000-0000-000000000001  some text    10000000-0000-0000-0000-000000000001-text_about               NaN            NaN                                                NaN                                                NaN               NaN               NaN

6  10000000-0000-0000-0000-000000000001        NaN  10000000-0000-0000-0000-000000000001-search_space  some json object           True                                                NaN                                                NaN               NaN               NaN

7  10000000-0000-0000-0000-000000000001        NaN  10000000-0000-0000-0000-000000000001-nice_to_have               NaN            NaN  [{'operator': 'AND', 'operands': [{'category':...                                                NaN               NaN               NaN

8  10000000-0000-0000-0000-000000000001        NaN     10000000-0000-0000-0000-000000000001-must_have               NaN            NaN                                                NaN  [{'operator': 'AND', 'operands': [{'category':...               NaN               NaN

9                                   NaN        NaN                                                NaN               NaN            NaN                                                NaN                                                NaN               NaN  some json object

在那里你可以選擇nice_to_have:


df = pd.json_normalize(d, record_path=['hits'])


In [263]: %time df['nice_to_have'].dropna().sum()                                                                                                                                                                                                                                  

CPU times: user 705 μs, sys: 11 μs, total: 716 μs

Wall time: 713 μs

Out[263]: 

[{'operator': 'AND',

  'operands': [{'category': 'Skill',

    'values': [{'value': 'MySQL ', 'clusters': []}]}]},

 {'operator': 'AND',

  'operands': [{'category': 'Skill',

    'values': [{'value': 'Frontend Programming Language ',

      'clusters': [{'key': 'Programming Language~>Frontend Programming Language',

        'name': 'Frontend Programming Language',

        'path': ['Programming Language', 'Frontend Programming Language'],

        'uuid': 'e8c5cc6c-d92b-4098-8965-41e6818fe337',

        'category': 'skill',

        'pretty_lineage': ['Programming Language']}]}]}]}]

希望這有用。


編輯:


回應(yīng)您的評(píng)論:此 json 的主要問題是級(jí)別不一致,因此無法執(zhí)行規(guī)范化并引發(fā) KeyError。


獲得以下解決方法nice_to_have:


f = list(filter(lambda x: 'nice_to_have' in x, d['hits']))  


>> pd.json_normalize(f, ['nice_to_have', 'operands', 'values', 'clusters'])


                                                 key                           name                                               path                                  uuid category          pretty_lineage

0  Programming Language~>Frontend Programming Lan...  Frontend Programming Language  [Programming Language, Frontend Programming La...  e8c5cc6c-d92b-4098-8965-41e6818fe337    skill  [Programming Language]

從那里你可以得到你想要得到的值??梢詰?yīng)用類似的解決方法來獲取must_have.


查看完整回答
反對(duì) 回復(fù) 2023-03-16
  • 1 回答
  • 0 關(guān)注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)