죄송 하나 팬더 DataFrame 모든 값을 배치하는 동안 여러 목록을 반복하는 방법을 문의하는 방법을 알고하지 않았다 : 나는 ExactTarget 세일즈 포스 마케팅 API 함께 일하고서로 다른 값하지만 같은 변수 긴 제목
을 , API 호출에서 여러 사전 객체를 반복하려고하지만 그 중 일부는 중첩되어 다른 API 응답과 동일한 이름을 갖습니다. 동일한 명명 된 변수를 반복하여 데이터 프레임으로 반복하는 방법에 대해 혼란스러워합니다.
(ClickEvent){
Client =
(ClientID){
ID = 11111111
}
PartnerKey = None
CreatedDate = 2016-07-12 00:40:17
ModifiedDate = 2016-07-12 00:40:17
ID = 11111111
ObjectID = "11111111"
SendID = 11111111
SubscriberKey = "[email protected]"
EventDate = 2016-07-12 00:40:17
EventType = "Click"
TriggeredSendDefinitionObjectID = None
BatchID = 1
URLID = 11111111
URL = aaa.com
내가 "된 ClientID"에서 "ID"에 대한 별도의 dataframe 열을 만들려하지만 난 이미 명명 된 또 다른 변수의 문제로 실행하고 있습니다 :
이
는 API 호출의 출력 "신분증". "ClientID"를 반복하고 ID 값을 얻고 다른 값을 가져 와서 데이터 프레임에 배치하려면 어떻게해야합니까?내 코드가 데이터 프레임에 데이터를 배치 할 수 있지만 특정 클라이언트 ID를 가져 오지 못했습니다. 이 출력은 지금 모습입니다 : 당신이 "된 ClientID"에서 ID 번호가 아닌 다른 쓰레기를하려는 경우에만 볼 수 있듯이
BatchID ClientID CreatedDate \
0 1 (ClientID){\n ID = 10914162\n } 2016-02-23 13:08:59
1 1 (ClientID){\n ID = 10914162\n } 2016-02-23 13:11:49
코드 : 나는 이것을 시도하고있다
import ET_Client
import pandas as pd
try:
debug = False
stubObj = ET_Client.ET_Client(False, debug)
## Modify the date below to reduce the number of results returned from the request
## Setting this too far in the past could result in a very large response size
retrieveDate = '2016-07-11T13:00:00.000'
#ET call for clicks
print '>>>ClickEvents'
getClickEvent = ET_Client.ET_ClickEvent()
getClickEvent.auth_stub = stubObj
getResponse = getClickEvent.get()
ResponseResults = getResponse.results
#print ResponseResults
Client = []
partner_keys = []
created_dates = []
modified_date = []
ID = []
ObjectID = []
SendID = []
SubscriberKey = []
EventDate = []
EventType = []
TriggeredSendDefinitionObjectID = []
BatchID = []
URLID = []
URL = []
for ClickEvent in ResponseResults:
Client.append(str(ClickEvent['Client']))
partner_keys.append(ClickEvent['PartnerKey'])
created_dates.append(ClickEvent['CreatedDate'])
modified_date.append(ClickEvent['ModifiedDate'])
ID.append(ClickEvent['ID'])
ObjectID.append(ClickEvent['ObjectID'])
SendID.append(ClickEvent['SendID'])
SubscriberKey.append(ClickEvent['SubscriberKey'])
EventDate.append(ClickEvent['EventDate'])
EventType.append(ClickEvent['EventType'])
TriggeredSendDefinitionObjectID.append('TriggeredSendDefinitionObjectID')
BatchID.append(ClickEvent['BatchID'])
URLID.append(ClickEvent['URLID'])
URL.append(ClickEvent['URL'])
df = pd.DataFrame({'ClientID': Client, 'PartnerKey': partner_keys,
'CreatedDate' : created_dates, 'ModifiedDate': modified_date,
'ID':ID, 'ObjectID': ObjectID,'SendID':SendID,'SubscriberKey':SubscriberKey,
'EventDate':EventDate,'EventType':EventType,'TriggeredSendDefinitionObjectID':TriggeredSendDefinitionObjectID,
'BatchID':BatchID,'URLID':URLID,'URL':URL})
print df
해결책이 있지만 작동하지 않음 :
for ClickEvent in ResponseResults():
if 'ClientID' in ClickEvent:
ID.append(ClickEvent['Client']:
print Client
감사합니다.
-EDIT- 위의 API 호출 결과는 시스템이 출력하는 방식과 정확히 일치하며 실제 JSON 응답을 어떻게해야합니까?
데이터 프레임은 I는 다음과 같이 할 :
BatchID ClientID CreatedDate \
0 1 111111111 2016-02-23 13:08:59
1 1 111111111 2016-02-23 13:11:49
그냥 내가 위에서 제출 한 데이터의 "된 ClientID"부분에 다른 물건을 돼요. 희망이 도움이됩니다. 대신 목록에 전체 클라이언트 객체를 추가의
API (JSON?)의 실제 응답과 DataFrame의 마지막 모습을 보여줄 수 있습니까? – user666
님이 답변을 게시 한 기본 게시물에서 수정했습니다. API가 위와 같이 출력됩니다. – RustyShackleford