回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>文章底部的脚本帮助我从JSON获取数据并将其重新定向到如下所示的信息列表中</p>
<p>我需要将其重新构造为表格格式,以便进行CSV转换,或者更好的做法是在将其重新构造为X/Y轴后进行MySQL插入,但是当前的JSON输出有重复出现的标题,这些标题在转换为表格时是不需要的,所以我实际上只是试图去掉“first_name”和“last_name”的响应值,并将其作为列标题,而值以行表示</p>
<p>对于Python还不是非常精通,但我觉得这是处理处理过程最明智的方法,任何帮助都将不胜感激</p>
<pre><code>id , 9999999
first_name , Joe
last_name , Schmo
group_id , 99999
active , True
employee_number , 0
salaried , False
exempt , False
username , jschmo
email , abc123@gmail.com
email_verified , False
payroll_id ,
mobile_number , 9999999999
hire_date , 0000-00-00
term_date , 0000-00-00
last_modified , 2021-02-08T01:59:42+00:00
last_active , 2021-02-10T22:45:34+00:00
created , 2021-02-04T20:07:38+00:00
client_url , abcefg
company_name , Some Company Name
profile_image_url , https://www.gravatar.com/avatar/000000000000000000000000000
display_name ,
pronouns ,
pto_balances,
1400406 , 0
submitted_to , 2021-02-08
approved_to , 2021-02-08
manager_of_group_ids , []
require_password_change , False
pay_rate , 0
pay_interval , hour
permissions,
admin , False
mobile , True
status_box , False
reports , False
manage_timesheets , False
manage_authorization , False
manage_users , False
manage_my_timesheets , False
manage_jobcodes , False
pin_login , True
approve_timesheets , False
manage_schedules , False
external_access , False
manage_my_schedule , False
manage_company_schedules , False
view_company_schedules , False
view_group_schedules , False
manage_no_schedules , False
view_my_schedules , False
view_projects , False
manage_projects , False
time_tracking , True
customfields ,
id , 1111111
first_name , Jane
last_name , Doe
group_id , 11111
active , True
employee_number , 0
salaried , False
exempt , False
username , jdoe
email , xyz789@gmail.com
email_verified , False
payroll_id ,
mobile_number , 111111111
hire_date , 0000-00-00
term_date , 0000-00-00
last_modified , 2021-02-08T01:59:42+00:00
last_active , 2021-02-10T22:45:34+00:00
created , 2021-02-04T20:07:38+00:00
client_url , abcefg
company_name , Some Company Name
profile_image_url , https://www.gravatar.com/avatar/000000000000000000000000000
display_name ,
pronouns ,
pto_balances,
1400406 , 0
submitted_to , 2021-02-08
approved_to , 2021-02-08
manager_of_group_ids , []
require_password_change , False
pay_rate , 0
pay_interval , hour
permissions,
admin , False
mobile , True
status_box , False
reports , False
manage_timesheets , False
manage_authorization , False
manage_users , False
manage_my_timesheets , False
manage_jobcodes , False
pin_login , True
approve_timesheets , False
manage_schedules , False
external_access , False
manage_my_schedule , False
manage_company_schedules , False
view_company_schedules , False
view_group_schedules , False
manage_no_schedules , False
view_my_schedules , False
view_projects , False
manage_projects , False
time_tracking , True
customfields ,
</code></pre>
<pre><code>import requests
import json
import csv
url = "https://rest.apiofsomesort.com/api/v1/users"
payload = ""
headers = {
'Authorization': "Bearer ",
}
response = requests.request("GET", url, data=payload, headers=headers)
#print(response.text)
# Saves response to JSON file
emp_data = response.json()
with open('emp_data.json', 'w') as f:
json.dump(emp_data, f)
# Loads from JSON file while iterating recursively through nested keys,values
with open('emp_data.json','r') as string:
my_dict=json.load(string)
string.close()
def iterate_emp_data(my_dict):
for k,v in my_dict.items():
if(isinstance(v,dict)):
print(k+",")
iterate_emp_data(v)
continue
print(k+" , "+str(v))
iterate_emp_data(my_dict)
</code></pre>