簡體   English   中英

Python Suds-關於將項目添加到數組的困惑

[英]Python Suds - Confusion About Adding Item to Array

我正在嘗試使用肥皂水生成肥皂請求,肥皂水中包含一系列項目。 我無法正確插入數組,我嘗試做的只是將數組容器設置為數組項。

我嘗試設置並附加到相同的結果。

Python代碼

add_request = client.factory.create('AddRequest')

add_request_identity = client.factory.create('Identity')
add_request_identity.NameTypeCode = '06'
add_request_identity.ApplicationIdentityIdentifier = 'true'
add_request_identity.FamilyName = 'Fname98765432000'
add_request_identity.GivenNames = 'Gname98765432000'
add_request_identity.Gender = '01'
add_request_identity.DateOfBirth = '1990-06-27'
add_request_identity.DateOfBirthType = 'ACTUAL'
add_request_identity.PlaceOfBirth = 'OTTAWA'
add_request_identity.CountryOfBirth = 'CAN'

add_request.Identity = [add_request_identity]

我也嘗試過

add_request.Identity = add_request_identity

add_request.Identity.append(add_request_identity) 
(this throws an error "suds AttributeError: 'ArrayOfIdentity' object has no attribute 'append'")

add_request.Identity = []
add_request.Identity.append(add_request_identity) 

add_request_identity_array = client.factory.create('ArrayOfIdentity')
add_request_identity_array = [add_request_identity]
add_request.Identity = add_request_identity_array

但是它們都導致相同的輸出

實際產量

<ns0:Add>
         <ns0:Request>
             <ns0:Identity>
               <ns0:NameTypeCode>06</ns0:NameTypeCode>
  <ns0:ApplicationIdentityIdentifier>true</ns0:ApplicationIdentityIdentifier>
               <ns0:FamilyName>Fname98765432000</ns0:FamilyName>
               <ns0:GivenNames>Gname98765432000</ns0:GivenNames>
               <ns0:Gender>01</ns0:Gender>
               <ns0:DateOfBirth>1990-06-27</ns0:DateOfBirth>
               <ns0:DateOfBirthType>ACTUAL</ns0:DateOfBirthType>
               <ns0:PlaceOfBirth>OTTAWA</ns0:PlaceOfBirth>
               <ns0:CountryOfBirth>CAN</ns0:CountryOfBirth>
            </ns0:Identity>

我想要得到的(這是使用SoapUI生成的)

<v1:Add>
         <v1:Request>
            <v1:Identity>
               <!--1 or more repetitions:-->
               <v1:Identity>
                  <v1:NameTypeCode>06</v1:NameTypeCode>
                  <v1:ApplicationIdentityIdentifier>true</v1:ApplicationIdentityIdentifier>
                  <v1:FamilyName>Fname234567022</v1:FamilyName>
                  <v1:GivenNames>Gname234567022</v1:GivenNames>
                  <v1:Gender>01</v1:Gender>
                  <v1:DateOfBirth>1990-06-27</v1:DateOfBirth>
                  <v1:DateOfBirthType>ACTUAL</v1:DateOfBirthType>
                  <!--Optional:-->
                  <v1:PlaceOfBirth>OTTAWA</v1:PlaceOfBirth>
                  <!--Optional:-->
                  <v1:CountryOfBirth>CAN</v1:CountryOfBirth>
               </v1:Identity>
            </v1:Identity>

我能夠自己解決這個問題。 頂部的Identity元素有一個子Identity元素。

add_request_identity_array = client.factory.create('ArrayOfIdentity')
add_request_identity_array.Identity = [add_request_identity1, add_request_identity2]
add_request.Identity = add_request_identity_array

要么

add_request.Identity.Identity = [add_request_identity1, add_request_identity2]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM