홈>
다음 스키마가 있는데
contact
값을 업데이트하고 싶습니다.
그리고
geo
base64의 객체 값으로.
예 :
data = [{"country":"germany","details":[{"state":"BR","location_details":[{"zipcode":"49875","contact":[{"contact_information":["a@ger.org"],"type":"email","phone":"444-44-4444"},{"contact_information":["b@ger.org"],"type":"email","phone":"555-44-4444"}],"geo":[{"center":["55.4"],"rotate":"50","parallels":"6000"},{"center":["55.4"],"rotate":"50","parallels":"6000"}]}]}]}]
예상 출력 :
[{"country":"germany","details":[{"state":"BR","location_details":[{"zipcode":"49875","contact":"W3tjb250YWN0X2luZm9ybWF0aW9uOlthQGdlci5vcmddLHR5cGU6ZW1haWwscGhvbmU6NDQ0LTQ0LTQ0NDR9LHtjb250YWN0X2luZm9ybWF0aW9uOltiQGdlci5vcmddLHR5cGU6ZW1haWwscGhvbmU6NTU1LTQ0LTQ0NDR9XQo=","geo":"W3tjZW50ZXI6WzU1LjRdLHJvdGF0ZTo1MCxwYXJhbGxlbHM6NjAwMH0se2NlbnRlcjpbNTUuNF0scm90YXRlOjUwLHBhcmFsbGVsczo2MDAwfV0K"}]}]}]
이 작업을 동적으로 수행하고 싶지만이 목록이 커지고 해당 필드를 업데이트 할 수 있기를 원합니다. 대체 된 값으로 동일한 스키마 객체를 다시 작성하십시오.
코드 :
import base64
for flat_data in data:
for detail in data.get("details"):
for location_detail in detail.get("location_details"):
_contact = base64.b64encode(location_detail.get("paths"))
_geo = base64.b64encode(location_detail.get("geo"))
업데이트: 대체 된 값으로 동일한 스키마 객체를 다시 작성해야한다는 점을 강조하고 싶습니다! 또한,
data
목록 내에 여러 개체를 가질 수 있습니다.
- 답변 # 1
- 답변 # 2
이 작업의 목적이 무엇인지 확실하지 않지만이 코드는 원하는 작업을 수행합니다.
먼저 코드에 오류가 있으므로 여기에서 수정되었습니다. 둘째,b64encode ()메소드는 바이트를 인수로 취하므로 list는 바이트를 얻지 않으므로
location_detail.get("geo")
목록을 변환했습니다. &location_detail.get("geo")
문자열로. 문자열에서 바이트를 얻으려면encode ()메소드를 사용하면됩니다.import base64 data = [{"country":"germany","details":[{"state":"BR","location_details":[{"zipcode":"49875","contact":[{"contact_information":["a@ger.org"],"type":"email","phone":"444-44-4444"},{"contact_information":["b@ger.org"],"type":"email","phone":"555-44-4444"}],"geo":[{"center":["55.4"],"rotate":"50","parallels":"6000"},{"center":["55.4"],"rotate":"50","parallels":"6000"}]}]}]}] for flat_data in data: for detail in flat_data.get("details"): for location_detail in detail.get("location_details"): _contact = base64.b64encode(str(location_detail.get("contact")).encode()) _geo = base64.b64encode(str(location_detail.get("geo")).encode())
출력
_geo = b'W3snY2VudGVyJzogWyc1NS40J10sICdyb3RhdGUnOiAnNTAnLCAncGFyYWxsZWxzJzogJzYwMDAnfSwgeydjZW50ZXInOiBbJzU1LjQnXSwgJ3JvdGF0ZSc6ICc1MCcsICdwYXJhbGxlbHMnOiAnNjAwMCd9XQ==' _contact = b'W3snY29udGFjdF9pbmZvcm1hdGlvbic6IFsnYUBnZXIub3JnJ10sICd0eXBlJzogJ2VtYWlsJywgJ3Bob25lJzogJzQ0NC00NC00NDQ0J30sIHsnY29udGFjdF9pbmZvcm1hdGlvbic6IFsnYkBnZXIub3JnJ10sICd0eXBlJzogJ2VtYWlsJywgJ3Bob25lJzogJzU1NS00NC00NDQ0J31d'
관련 자료
- SQL Server에서 Python을 사용하여 테이블의 열 값 업데이트
- python pandas - 그룹화 된 값 x의 처음 n 개 행 합계
- variables - Python 인수 값
- python - 중첩 루프에서 정수만 업데이트
- 다음 행 값을 저장하는 Python Pandas Dataframe
- python - 중첩 된 dict의 값을 pandas 데이터 프레임으로 바꾸려면 어떻게해야합니까?
- python - Pandas Series 개체는 값을 업데이트하지 않습니다
- 사전 파이썬에서 키를 다른 키로 바꾸는 방법 (값이 아님)
- 유형에 중첩 값이 있는지 확인하는 표준 C # 방법?
- Python의 if 문에서 값 배열 만들기
- dictionary - Python에서 동적 중첩 사전을 만드는 방법
- Python이 ElementTree와 동일한 루프에서 XML의 부모 및 자식 값을 가져옵니다
- 중첩 된 파이썬 for 루프를 만드는 방법은 두 목록의 각 항목을 한 번만 실행합니까?
- amazon web services - Python에서 boto3로 AWS Gamelift 스크립트를 업데이트하려면 어떻게해야합니까?
- 파이썬 (생성기 표현식)에서 문자열을 중첩 된 사전으로 변환하는 방법은 무엇입니까?
- python - 중첩 된 dict 항목이 동시에 업데이트됩니다
- (Python) 2D 목록의 열에 동일한 값이 포함되어 있는지 확인
- arrays - Python은 텍스트 파일 값을 부동 소수점으로 가져옵니다
- function - Python의 튜플 목록에서 음수 값 찾기
- 파이썬의 문자열에서 일부 값 가져 오기
관련 질문
- python : 사전 값으로 사전 정렬
- python : asyncio.create_task ()는 무엇을합니까?
- python : 파이썬의 다른 사전 목록에서 목록 사전의 키 값 검색
- python : 이 code가 한 명이 아닌 여러 명의 상위 학생을 위해 작동하도록해야합니다.
- python : messagebox가 유효성 검사를 중지합니다.
- python : 이중 루프 및 열거에 관한 질문
- 사전 /배열에 대한 Python 클래스 속성
- 고유 벡터 Python에 대한 QR 분해
- python : 큰 파이썬 프로젝트에서 가져 오기를 구조화하는 방법
- python : 파이썬에서 클릭 명령에 대해 (-l, -b)와 같은 플래그를 어떻게 설정할 수 있습니까?
왜 그런지 묻지 않아요 ^^ 나는 당신의 괴물을
x
라고 부릅니다 :base64로 원하는 부분을 인코딩하는 방법입니다 :
json.dumps(...).encode('utf-8')
인코딩 대신 사용할 수도 있습니다.이제 객체를 재생성하는 데에는 두 가지 옵션이 있습니다. 원본 데이터가 필요하지 않거나 보관해야합니다. 전자의 경우는 다음과 같습니다
원본 데이터가 필요한 경우 먼저해야합니다
와
x2
와 함께 작동