2016-07-06 2 views
0

다음과 같은 이유 때문에 혼란 스럽습니다.Python은 ConnectWise에서 json을 패치하지 않습니다.

요청을 통해 ConnectWise API에 연결하고 있습니다. 나는 응답을 얻고, 나는 내가 찾고있는 표를 찾기 위해 처음부터 끝까지 파싱한다. 그런 다음 특정 정보를 변경하기 위해 티켓을 찾으려고합니다.

API를 통해 반환되는 샘플 json입니다.

{ 
    "id": 12345, 
    "summary": "[CompanyName][ComputerName] Disk Space Check - drive G:", 
    "recordType": "ServiceTicket", 
    "board": { 
    "id": 1, 
    "name": "Board1", 
    }, 
    "status": { 
    "id": 5, 
    "name": "NewTicket", 
    }, 
    "owner": { 
    "id": 1, 
    "identifier": "", 

티켓을 확인하고 나면 작업해야합니다. 나는 그것을 패치하려고합니다.

def assign_ticket(self, ticket): 

    add_resource = [ 
        {'op': 'replace', 'path': '/board/name', 'value': 'Board2'}, 
        {'op': 'replace', 'path': '/status/name', 'value': 'NewTicket2'}, 
        {'op': 'replace', 'path': '/owner/identifier', 'value': 'MyBrainHurts'} 
      ] 

    r = requests.patch(self.url + self.url_ticket + str(ticket), json=add_resource, headers=self.header) 
    print(r.status_code) 

완전히 상태를 나타내는 200 개의 상태 코드를 반환하지만/owner/identifier 필드 만 업데이트됩니다. 나머지 두 명은 그렇지 않습니다. 며칠 동안 Google에서 여러 가지 코드를 시도했지만 보드 나 상태가 변경되지 않는 이유는 알 수 없습니다. 어떤 아이디어?

+0

비 - 파이썬 방법 (예 : 말림)을 사용하여 수행 할 때 패치 작업이 작동합니까? – jwodder

+0

훌륭한 질문입니다. 나는 그것을 아직 시도하지 않았다는 것을 인정하는 것을 싫어한다. 나는 지금 그것을 시도 할 것이다. .. – MBH

답변

1

방금 ​​다른 코드를 확인한 결과 배열을 사용하여 성공적으로 패치를 적용했지만 이름 대신 리소스 ID를 사용하고 있습니다. 시도해보십시오./status/name 대신/status/id와 숫자 값을 사용하십시오.

r.text의 결과는 무엇입니까? 패치 된 새로운 형태의 구성을 반환하거나 패치가 작동하지 않는 이유를 알려줍니다.

관련 문제