2017-10-13 9 views
0

나는 아래의 코드를 사용하여 influxdb - 파이썬을 사용하여 influxDB로 (아래와)는 JSON을 쓰기 위해 노력하고 있어요 write_pointsInfluxdb 파이썬은 오류

[{ 
    "fields": [{ 
     "PATH": "/", 
     "DISK_USED_PERCENT": "10" 
    }, { 
     "PATH": "/xxxxxxxxx", 
     "DISK_USED_PERCENT": "0" 
    }, { 
     "PATH": "/dev/xxxxxxxxx", 
     "DISK_USED_PERCENT": "0" 
    }, { 
     "PATH": "/xxxxxxxxx", 
     "DISK_USED_PERCENT": "3" 
    }, { 
     "PATH": "/sys/xxxxxxxxx/xxxxxxxxx", 
     "DISK_USED_PERCENT": "0" 
    }, { 
     "PATH": "/run/xxxxxxxxx", 
     "DISK_USED_PERCENT": "0" 
    }, { 
     "PATH": "xxxxxxxxx", 
     "DISK_USED_PERCENT": "0" 
    }], 
    "tags": { 
     "host_identifier": "xxxxxx", 
     "name": "mount_point_percentage" 
    }, 
    "time": "xxxxx", 
    "measurement": "xxxxxxx" 
    }] 

을하지만 난 점점 계속 아래 오류 -

AttributeError: 'str' object has no attribute 'get' 

누군가 올바른 방향으로 나를 가리킬 수 있습니까?

답변

0

write_points()를 올바르게 호출하지 않는 것 같습니다. 그것에 대한 Docs은 훨씬 더 많은 정보를 제공해야 함을 나타냅니다. write_points(points, time_precision=None, database=None, retention_policy=None, tags=None, batch_size=None, protocol=u'json') 매개 변수 :

(사전의 목록, 각 사전이 점을 나타냅니다) -, 어느 s - 점의 목록은 데이터베이스

time_precision (STR)

에 기록 될 없음

m, ms 또는 u, 기본값

데이터베이스 (str) - 포인트를 쓰는 데이터베이스. 클라이언트의 현재 데이터베이스 기본값으로 설정됩니다.

태그 (dict) - 각 지점과 관련된 키 - 값 쌍의 집합입니다. 키와 값은 모두 문자열이어야합니다. 이러한 태그는 공유 태그이며 기본값은 None입니다.

retention_policy (str) - 포인트의 보존 정책. 기본값은 None

batch_size (int) - 한 번에 일괄 적으로 포인트를 쓰는 값입니다. 한 데이터베이스에서 다른 데이터베이스로 데이터 덤프를 수행 할 때나 대량 쓰기 작업을 할 때 유용합니다. 기본값은 None입니다.

프로토콜 (문자열) - 데이터 쓰기 프로토콜. line 또는 json입니다.

+0

작성 시도 할 수 -'DBclient.write_points을 여전히 예외가 있습니다. –

+0

파이썬에서는 기본값이 아닌 키워드가 아닌 인수 만 사용합니다 (예 : 필수.그것은 위의 '점'에 불과합니다. – danny

0
influx_data = json.dumps(write_to_influx_json) 

데이터는 json이 아닌 사전 목록이어야합니다.

docs을 참조하십시오.

write_points (점)

포인트 (사전의 목록은 각 사전 는 점을 나타냅니다) - 점의 목록이 데이터베이스