ishiko
(石川由惟)
2025 年 5 月 22 日午前 8:59
1
PythonでAPIを実行しようと作成しましたが、空のレコードが送られます。
コードの書き方がいけないのでしょうか。教えていただけないでしょうか。
※フィールド名が誤りないことは確認済み
※型も誤りがないことを確認済み
※●●●はマスキングです。
実施したいこととしては、下記の得意先1の値をaaaaに送りたいです。
元データの総量は5万近くあるので、それらをすべて送り込みたいです!
元データ:カラム名「得意先名1」 値の例「A株式会社」
送り先:カラム名「aaaa」 値の例「A株式会社」
import requests
import json
サブドメイン、アプリID、APIトークンを定義
subdomain = ‘●●●’
app_id = ‘6’
api_token = ‘●●●’
Databricksカタログからデータを読み込む
df = spark.sql(“SELECT 得意先名1
FROM external.u_gold.its_keiyaku_getsuji”)
Kintone APIエンドポイント
url = f"https://{subdomain}.cybozu.com/k/v1/records.json"
Kintone APIのヘッダー
headers = {
“X-Cybozu-API-Token”: api_token,
“Content-Type”: “application/json”
}
Kintone API用のデータを準備
records_to_create =
for row in df.collect():
record = {
“tokuisakimei”: {“value”: row[‘得意先名1’]}
}
records_to_create.append({“record”: record})
レコードを100件ずつ分割して送信
batch_size = 100
for i in range(0, len(records_to_create), batch_size):
batch = records_to_create[i:i + batch_size]
payload = {
“app”: app_id,
“records”: batch
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
# レスポンスのステータスを確認
if response.status_code == 200:
print(f"Batch {i//batch_size + 1} successfully created in Kintone.")
else:
print(f"Failed to create batch {i//batch_size + 1} in Kintone. Status code: {response.status_code}, Response: {response.text}")
jurippe
(jurippe)
2025 年 5 月 23 日午前 4:03
2
Python読めなくて申し訳ないんですが、
この時点でどんなデータを送ろうとしているのかと、レスポンスどんなのが返ってきたか書いてくださると回答がつくかもしれません!
「いいね!」 1
ishiko
(石川由惟)
2025 年 5 月 23 日午前 4:11
3
@jurippe 返信ありがとうございます。
実施したいこととしては、下記の得意先1の値をaaaaに送りたいです。
元データの総量は5万近くあるので、それらをすべて送り込みたいです!
元データ:カラム名「得意先名1」 値の例「A株式会社」STRING
送り先:kintone カラム名「aaaa」 値の例「A株式会社」文字列
なのですが何かわかる部分ございますでしょうか・・・色々試したのですがうまくいかなく・・・
puppet
2025 年 5 月 23 日午前 4:38
4
同じくpythonはほとんど知らないですが、こちらのページと照らし合わせた感じだと、
records_to_create.append({"record": record})
ではなく
records_to_create.append(record)
とかにしてみると変化がありそうです。
つまりは、、、
batch = records_to_create[i:i + batch_size]
の処理で現在batch
に何が入っているか不明ですが、batch
の中身が
// kintoneのフィールドコード名「tokuisakimei」とする
[
{"tokuisakimei": {"value": "A株式会社"}},
{"tokuisakimei": {"value": "B株式会社"}},
// …
{"tokuisakimei": {"value": "Z株式会社"}}
]
になっているとうまくいきそうな気がします。
ishiko
(石川由惟)
2025 年 5 月 23 日午前 5:02
5
@puppet
ご回答ありがとうございます!
もしかしてvalueの部分に問題があるかもと思い再度パトロールしたところ、
うまく送られました。
お騒がせいたしました。
@jurippe @puppet
ありがとうございました!
import requests
url = "https://ドメイン.cybozu.com/k/v1/record.json"
api_token = "●●●"
def add_records_one_by_one(records):
for i, record in enumerate(records):
payload = {
"app": "29",
"record": record
}
headers = {
"X-Cybozu-API-Token": api_token,
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
print(f"Record {i + 1} added successfully.")
else:
print(f"Failed to add record {i + 1}: {response.status_code} - {response.text}")
df = spark.sql("SELECT `得意先名1` FROM external.u_gold.its_keiyaku_uwagaki")
records = [
{
"aaaa": {
"value": row['得意先名1'] if row['得意先名1'] else "N/A"
}
}
for row in df.collect()
]
add_records_one_by_one(records)
「いいね!」 3
puppet
2025 年 5 月 23 日午前 5:45
6
専用機能・コース | kintone(キントーン)エンタープライズ企業の方向け特設サイト
現在1件ごとのAPIを提示されていますが、契約プランごとに上限がありますのでご注意ください。
「いいね!」 2
ishiko
(石川由惟)
2025 年 5 月 23 日午前 5:58
7
@puppet
そうなのですね!把握しておりませんでした。ありがとうございます。こちらも拝見させていただきます!
「いいね!」 1
system
(system)
クローズされました:
2025 年 5 月 27 日午前 7:44
8
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。