>

Meraki API에 대한 API 호출을 작성하는 스크립트를 작성 중이며 특정 값을 CSV 파일에 작성해야합니다. 첨부 된 스크린 샷이 있으면 목록에서 특정 정보를 선택할 수 있었지만 "timeSeries"와는 다른 하위 섹션 인 것 같습니다.

latency_measure = json.loads(session.get('https://api.meraki.com/api/v0/organizations/' + ORG_ID + '/uplinksLossAndLatency', headers=headers).text)

def latency_measure_info(latency_measure):
    csv_file1 = open(name + ' appliances -' + str(today) + '.csv', 'w', encoding='utf-8')
    fieldnames = ['Network', 'Serial', 'Uplink', 'Destination IP', 'Test 1 Date/Time', 'Test 1 Loss Percent', 'Test 1 Latency', 'Test 2 Date/Time', 'Test 2 Loss Percent', 'Test 2 Latency', 'Test 3 Date/Time', 'Test 3 Loss Percent', 'Test 3 Latency', 'Test 4 Date/Time', 'Test 4 Loss Percent', 'Test 4 Latency']
    writer = csv.DictWriter(csv_file1, fieldnames=fieldnames, restval='')
    writer.writeheader()
    for latency in latency_measure: 
        if (network_id in network_id_list): 
            network_name = get_network_name(latency['networkId'], networks)

writer.writerow({'Network': network_name, 'Serial': latency['serial'], 'Uplink': latency['uplink'], 'Destination IP': latency['ip'], 'Test 1 Loss Percent': latency['timeSeries'['lossPercent']], 'Test 1 Latency': latency['latencyMs'], 'Test 2 Date/Time': latency['ts'], 'Test 2 Loss Percent': latency['lossPercent'], 'Test 2 Latency': latency['latencyMs'], 'Test 3 Date/Time': latency['ts'], 'Test 3 Loss Percent': latency['lossPercent'], 'Test 3 Latency': latency['latencyMs'], 'Test 4 Date/Time': latency['ts'], 'Test 4 Loss Percent': latency['lossPercent'], 'Test 4 Latency': latency['latencyMS']})

csv_file1.close()

CSV 파일에 행을 쓸 때 네트워크, 직렬, 업 링크 및 대상 IP 데이터를 선택할 수 있지만 timeSeries에 도달하자마자 timeSeries에 도달하면 정보를 가져 오지 않습니다. 지정하십시오.

  • 답변 # 1

    json.loads(..) 를 한 후에 "timeSeries"는 list 입니다.  와이즈 비츠 s.

    dict
    
    

    먼저 print(type(latency["timeSeries"])) # <class 'list'> print(type(latency["timeSeries"][0])) # <class 'dict'> print(type(latency["timeSeries"][1])) # <class 'dict'> ... 의 각 요소에 액세스  색인을 통해 list 의 키-값 쌍에 액세스하십시오.  키를 사용하여.

    dict
    
    

    모든 인덱스를 하드 코딩 할 수 있습니다 ( latency["timeSeries"][0]["ts"] latency["timeSeries"][0]["lossPercent"] latency["timeSeries"][0]["latencyMs"] # OR timeSeries0 = latency["timeSeries"][0] timeSeries0["ts"] timeSeries0["lossPercent"] timeSeries0["latencyMs"] [0] , ..) 미리 몇 개인 지 알거나 timeSeries 목록의 모든 요소를 ​​반복하고 작성하려는 dict 값을 작성할 수 있습니다.

    [1]

  • 이전 Powershell을 사용하여 셀레늄에서 firefox exe 경로를 어떻게 정의합니까?
  • 다음 node.js - 아폴로 서버 익스프레스 + GraphQL 관계