콘텐츠 인식 사전 업데이트

Puzomor 크로아티아

이 문제를 어떻게 호출해야할지 모르겠지만 현재 프로젝트에서 이미 해결 방법이 너무 많아서 도움을 요청하고 있습니다.

이 샘플 코드가 주어지면

def sensitive_update(sensitive, updated):
  # ???


sensitive_data = {'user1': {'password' : '1234'}, 'user2': {'password': '4321'}}

updated_data = [
  {'user1': {'id': 13}},
  {'user2': {'password': '0000'}},
  {'user3': {'id': 14}}
  ]

for data in updated_data:
  sensitive_update(sensitive_data, data)

print(sensitive_data)
# should print
# {'user1': {'id': 13, 'password': '1234'}, 'user2': {'password': '0000'}, 'user3': {'id': 14}}

sensitive_update함수 를 작성하는 대부분의 내장 또는 짧은 방법이 있습니까? 아니면 사전의 각 값을 수동으로 반복하여 피할 수 없습니까?

편집 : 추가 정보 : 함수는 병합 가능한 모든 사전을 병합하고 존재하지 않는 사전 및 키를 만듭니다.

juanpa.arrivillaga

사전을 수동으로 반복하는 이유는 모르겠지만 수행하려는 작업에 대한 일반적인 접근 방식은 다음과 같습니다.

In [3]: sensitive_data = {'user1': {'password' : '1234'}, 'user2': {'password': '4321'}}
   ...:

In [4]: updated_data = [
   ...:   {'user1': {'id': 13}},
   ...:   {'user2': {'password': '0000'}},
   ...:   {'user3': {'id': 14}}
   ...:   ]

In [5]: for data in updated_data:
   ...:     for k,v in data.items():
   ...:         sensitive_data.setdefault(k, {}).update(v)
   ...:

In [6]: sensitive_data
Out[6]:
{'user1': {'id': 13, 'password': '1234'},
 'user2': {'password': '0000'},
 'user3': {'id': 14}}

당신은 사용하여 성능을 얻을 수있는 defaultdict너무 대신 일반을 dict으로 setdefault하는 방법. 본질적으로 setdefault방법 을 수행하도록 최적화 된 사전 이지만 일반적인 키 액세스로 작동합니다.

In [11]: sensitive_data = {'user1': {'password' : '1234'}, 'user2': {'password': '4321'}}
    ...:
    ...:

In [12]: from collections import defaultdict
In [13]: d = defaultdict(dict)

In [14]: d.update(sensitive_data) # convert plain dict to defaultdict

In [15]: d
Out[15]:
defaultdict(dict,
            {'user1': {'password': '1234'}, 'user2': {'password': '4321'}})

In [16]: for data in updated_data:
    ...:     for k,v in data.items():
    ...:         d[k].update(v)
    ...:

In [17]: d
Out[17]:
defaultdict(dict,
            {'user1': {'id': 13, 'password': '1234'},
             'user2': {'password': '0000'},
             'user3': {'id': 14}})

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

jquery 자식 콘텐츠없이 html 콘텐츠 복사

분류에서Dev

특정 형식을 사용하여 Excel 시트의 셀 내 콘텐츠 업데이트

분류에서Dev

Gatsby 사이트에서 콘텐츠 업데이트

분류에서Dev

이 사이트와 같은 Wordpress 색인 콘텐츠?

분류에서Dev

인형을 사용하여 테이블 자식 콘텐츠 매핑

분류에서Dev

오른쪽 사이드 바에서 메인 콘텐츠로 블록 전송

분류에서Dev

Prismic CMS 콘텐츠가 업데이트되면 Gatsby 웹 사이트에 새 콘텐츠 표시

분류에서Dev

인트로를로드하기 전에 콘텐츠 숨기기

분류에서Dev

사이트 콘텐츠 변경 후 콘텐츠 다시로드

분류에서Dev

콘텐츠 길이로 인해 전송 된 여러 SMS 감지

분류에서Dev

{} 사이의 콘텐츠를 대체하는 PHP 정규식

분류에서Dev

UInavigation 다시보기 팝업 및 이전보기의 콘텐츠 업데이트

분류에서Dev

UInavigation 다시보기 팝업 및 이전보기의 콘텐츠 업데이트

분류에서Dev

개인화 된 콘텐츠로 Wordpress 사이드 바 편집

분류에서Dev

이중 콘텐츠 추가 쿼리 전면 CSS 콘텐츠

분류에서Dev

sqlite 데이터베이스 및 콘텐츠 제공 업체를 사용한 앱의 로그인 디자인

분류에서Dev

데이터 형식을 기반으로 콘텐츠 가져 오기 사용

분류에서Dev

Mandrill API 콘텐츠 전송 인코딩

분류에서Dev

Liferay의 사이트 인스턴스에 따라 콘텐츠 표시

분류에서Dev

사이트 너비가 xpx 미만인 경우 div 콘텐츠 제거

분류에서Dev

Apache Cordova 앱-Javascript innerHTML을 사용하여 콘텐츠 업데이트

분류에서Dev

Joomla 2.5 콘텐츠 플러그인 사용자 지정 양식이 표시되지 않음

분류에서Dev

자식이 어떤 숫자인지에 따라 의사 요소의 콘텐츠 값을 자동화합니다.

분류에서Dev

HTML이 PHP 문의 양식에 콘텐츠를 전달하지 않음

분류에서Dev

HTML이 PHP 문의 양식에 콘텐츠를 전달하지 않음

분류에서Dev

MutationObserver 사용 이전 및 새 텍스트 콘텐츠 비교

분류에서Dev

전체 Django 사이트에 대한 공통 콘텐츠로드

분류에서Dev

특수 문자를 사용하여 7 비트 콘텐츠 전송 인코딩 메시지 디코딩

분류에서Dev

콘텐츠 스크립트에서 메인으로 메시지 전달

Related 관련 기사

  1. 1

    jquery 자식 콘텐츠없이 html 콘텐츠 복사

  2. 2

    특정 형식을 사용하여 Excel 시트의 셀 내 콘텐츠 업데이트

  3. 3

    Gatsby 사이트에서 콘텐츠 업데이트

  4. 4

    이 사이트와 같은 Wordpress 색인 콘텐츠?

  5. 5

    인형을 사용하여 테이블 자식 콘텐츠 매핑

  6. 6

    오른쪽 사이드 바에서 메인 콘텐츠로 블록 전송

  7. 7

    Prismic CMS 콘텐츠가 업데이트되면 Gatsby 웹 사이트에 새 콘텐츠 표시

  8. 8

    인트로를로드하기 전에 콘텐츠 숨기기

  9. 9

    사이트 콘텐츠 변경 후 콘텐츠 다시로드

  10. 10

    콘텐츠 길이로 인해 전송 된 여러 SMS 감지

  11. 11

    {} 사이의 콘텐츠를 대체하는 PHP 정규식

  12. 12

    UInavigation 다시보기 팝업 및 이전보기의 콘텐츠 업데이트

  13. 13

    UInavigation 다시보기 팝업 및 이전보기의 콘텐츠 업데이트

  14. 14

    개인화 된 콘텐츠로 Wordpress 사이드 바 편집

  15. 15

    이중 콘텐츠 추가 쿼리 전면 CSS 콘텐츠

  16. 16

    sqlite 데이터베이스 및 콘텐츠 제공 업체를 사용한 앱의 로그인 디자인

  17. 17

    데이터 형식을 기반으로 콘텐츠 가져 오기 사용

  18. 18

    Mandrill API 콘텐츠 전송 인코딩

  19. 19

    Liferay의 사이트 인스턴스에 따라 콘텐츠 표시

  20. 20

    사이트 너비가 xpx 미만인 경우 div 콘텐츠 제거

  21. 21

    Apache Cordova 앱-Javascript innerHTML을 사용하여 콘텐츠 업데이트

  22. 22

    Joomla 2.5 콘텐츠 플러그인 사용자 지정 양식이 표시되지 않음

  23. 23

    자식이 어떤 숫자인지에 따라 의사 요소의 콘텐츠 값을 자동화합니다.

  24. 24

    HTML이 PHP 문의 양식에 콘텐츠를 전달하지 않음

  25. 25

    HTML이 PHP 문의 양식에 콘텐츠를 전달하지 않음

  26. 26

    MutationObserver 사용 이전 및 새 텍스트 콘텐츠 비교

  27. 27

    전체 Django 사이트에 대한 공통 콘텐츠로드

  28. 28

    특수 문자를 사용하여 7 비트 콘텐츠 전송 인코딩 메시지 디코딩

  29. 29

    콘텐츠 스크립트에서 메인으로 메시지 전달

뜨겁다태그

보관