Saya belum ada waktu menerangkan panjang lebar.
Saya menggunakan bantuan dokumentasi dan jsoneditoronline buat membantu ekstraksi json.
Sementara skrip ini dulu aja buat catatan:
from citric import Client import pandas as pd survey_id = 452848 client = Client( 'http://limesurvey6.test/index.php/admin/remotecontrol', 'admin', 'password' ) participants = client.list_participants(survey_id, start=0, limit=5, unused=True, attributes= False, conditions=None) print(participants)
Hasilnya sbb:
Namun apabila kita ingin mengambil attributes lain, caranya sbb:
participants = client.list_participants(survey_id, start=0, limit=5, unused=True, attributes= ["completed", "usesleft", "attribute_1"], conditions=None)
Dan hasilnya sbb:
Sekarang tinggal ekstrak pilih attribute yang mana.
Berikut jika kita ingin memasukkannya ke DataFrame:
from citric import Client import pandas as pd # Connect to your LimeSurvey instance survey_id = 452848 client = Client( "http://limesurvey6.test/admin/remotecontrol", 'admin', 'password' ) participants = client.list_participants(survey_id, start=0, limit=5, unused=True, attributes= ["completed", "usesleft", "attribute_1"], conditions=None) # karena participant mengandung sub array, maka kita harus emmbuatnya ke dalam array 2 2 dimensi agar bisa dimasukkan ke DataFrame res = [] for field in participants: res.append({'tid':field['tid'], 'attribute_1':field['attribute_1'], 'firstname':field['participant_info']['firstname'] }) df = pd.DataFrame(res) # setelah itu bisa di print di export ke excel maupun ke sqlite print(df)
Menurut saya method ini kurang asik. Mestinya ada cara ambil all fields in participants. Atau apa saya yang kurang ngerti caranya?