我无法将api调用循环的输出写入可读的csv文件。 我对python非常陌生,可能是因为不同的数据格式。 csv仅包含9列,它不会将所有其他元素作为单独的列读取
import requests
import json
import pandas as pd
FileNaam = 'name'
params = (
('api_key', 'api_key'),
('since', '1595590000'),
('sort', 'asc')
)
url = 'https://a.klaviyo.com/api/v1/metrics/timeline'
discover_api = requests.get(url, params=params).json()
events = discover_api["data"]
next_id = discover_api["next"]
continueloop = 1
while continueloop ==1:
params = (
('api_key', 'api_key'),
('since', next_id),
('sort', 'asc')
)
discover_apiloop = requests.get(url, params=params).json()
events.extend(discover_apiloop["data"])
if discover_apiloop["next"] is None:
continueloop = 0
else:
next_id = discover_apiloop["next"]
data = json.dumps(events, sort_keys=True, indent=4)
df = pd.read_json(data)
df.to_csv(FileNaam+'.csv')
当Im不循环,只执行一个api调用时,Im使用不同的格式,csv很好。下面的代码工作正常,但我希望在使用循环时得到相同的结果
import requests
import json
import pandas as pd
FileNaam = 'name'
params = (
('api_key', 'api_key'),
('sort', 'asc'),
('since', '1595590000')
)
response = requests.get('https://a.klaviyo.com/api/v1/metrics/timeline', params=params)
responsetext = response.text
data = json.loads(responsetext)
df = pd.json_normalize(data['data'])
df.to_csv(FileNaam +'.csv')
如何转换我的输出以获得正确的csv
在循环之后使用json_规范化就可以工作了
相关问题 更多 >
编程相关推荐