GUIDES
CSV の住所を整える
住所の列を持つ CSV を読み、1件ずつ検証して、検証レベル・正規化した住所・座標の列を足して書き出す手順です。
更新: 2026年10月12日
顧客名簿や配送先リストの住所を、検証して整える手順です。件数が多いときは、バッチ処理(Growth 以上)を使います。ここでは、全プランで使える 1件ずつの方法を示します。
方針
- 元の CSV は、そのまま残す。結果は別の列(または別のファイル)に足す。
- 住所の列を
parseに渡し、levelと正規化した住所を受け取る。 levelで三つに分ける:そのまま使う・目視する・再入力を求める。
コード(Python)
import csv, os, time, requests
KEY = os.environ["KITEN_API_KEY"]
URL = "https://api.zorynto.com/v1/parse" # TODO(要確認): API ホスト
H = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}
def parse(text):
for wait in (0, 1, 2, 4):
time.sleep(wait)
r = requests.post(URL, headers=H, json={"text": text}, timeout=10)
if r.status_code != 429:
r.raise_for_status()
return r.json()
raise RuntimeError("429 が続きました")
with open("customers.csv", newline="", encoding="utf-8") as f, \
open("customers.checked.csv", "w", newline="", encoding="utf-8") as g:
rows = csv.DictReader(f)
out = csv.DictWriter(g, fieldnames=rows.fieldnames + ["level", "precision", "request_id"])
out.writeheader()
for row in rows:
res = parse(row["address"])
row["level"] = res["level"]
row["precision"] = res["location"]["precision"]
row["request_id"] = res["request_id"]
out.writerow(row)
要確認 本文の項目名(
text)と、応答の項目名は、公開前に確定します。
結果の分け方
| 検証レベル | 扱い |
|---|---|
L5 L4 | そのまま使う |
L3 L2 | 目視する(corrections と warnings を見る) |
L1 | 再入力を求める、または対象から外す |
気をつけること
この内容に誤りや不足があれば、お知らせください。