将 json 转换为 python 中 for 循环中的数据帧
convert json to dataframe in for loops in python
我正在尝试使用 api 调用数据并使用返回 json 的 for 循环制作数据帧。我能够创建第一个数据框,但我的 for 循环仅 returns 第一个 json -> 数据框。折腾了几天,决定在这里请教高手..
import requests
import json
import pandas as pd
# create an Empty DataFrame object
df = pd.DataFrame()
# api header
headers = {"Accept": "application/json","Authorization": "api_secret"}
#email for loops
email_list = ["abc@gmail.com", "xyz@gmail.com"]
#supposed to read 2 emails in the list and append each df but only reads the first one...#
for i in email_list:
querystring = {"where":i}
response = requests.request("GET", "https://example.com/api/2.0/export", headers=headers, params=querystring)
with open('test.jsonl', 'w') as writefile:
writefile.write(response.text)
data = [json.loads(line) for line in open('test.jsonl', 'r')]
FIELDS = ["event"]
df = pd.json_normalize(data)[FIELDS]
df = df.append(df)
我想知道是否需要更改 df append 中的某些内容,但我无法确定需要更改的位置。非常感谢您!
df = pd.json_normalize(data)[FIELDS]
df = df.append(df)
改为每次都覆盖数据帧,在追加之前创建一个新数据帧:
df2 = pd.json_normalize(data)[FIELDS]
df = df.append(df2)
我正在尝试使用 api 调用数据并使用返回 json 的 for 循环制作数据帧。我能够创建第一个数据框,但我的 for 循环仅 returns 第一个 json -> 数据框。折腾了几天,决定在这里请教高手..
import requests
import json
import pandas as pd
# create an Empty DataFrame object
df = pd.DataFrame()
# api header
headers = {"Accept": "application/json","Authorization": "api_secret"}
#email for loops
email_list = ["abc@gmail.com", "xyz@gmail.com"]
#supposed to read 2 emails in the list and append each df but only reads the first one...#
for i in email_list:
querystring = {"where":i}
response = requests.request("GET", "https://example.com/api/2.0/export", headers=headers, params=querystring)
with open('test.jsonl', 'w') as writefile:
writefile.write(response.text)
data = [json.loads(line) for line in open('test.jsonl', 'r')]
FIELDS = ["event"]
df = pd.json_normalize(data)[FIELDS]
df = df.append(df)
我想知道是否需要更改 df append 中的某些内容,但我无法确定需要更改的位置。非常感谢您!
df = pd.json_normalize(data)[FIELDS]
df = df.append(df)
改为每次都覆盖数据帧,在追加之前创建一个新数据帧:
df2 = pd.json_normalize(data)[FIELDS]
df = df.append(df2)