
JSON zu CSV, wie kann man Python verwenden?
Guys in der Verarbeitung von Daten, sicherlich begegnet JSON und CSV hin und her Schwierigkeiten. Insbesondere tun wir Datensammlung Freunde, Proxy-IP, um die Rückkehr Daten in neun von zehn sind JSON-Format zu erhalten, sondern um Bericht Analyse oder CSV glatt zu tun. Heute werden wir Ihnen beibringen, wie man Python verwenden, um eine Konvertierung Skript zu schreiben, übrigens, wie man ipipgo Proxy-IP verwenden, um die Effizienz der Datenerhebung zu verbessern.
Bereiten Sie Ihre Sachen vor.
Installieren Sie zuerst diese beiden wichtigen Bibliotheken:
pip install pandas Anfragen
Achtung!! Wenn Sie mit Proxy-IP-Daten aus verschiedenen Regionen arbeiten möchten, empfiehlt sich die Verwendung der API von ipipgo. Deren Proxy-Pool deckt mehr als 200 Länder ab, wodurch die Situation des Verbots von IPs während der Erfassung effektiv vermieden werden kann.
Basic Conversion Script
json importieren
csv importieren
with open('proxy_data.json') as f.
Daten = json.load(f)
Angenommen, die Daten sind für die Proxy-IP-Informationen wie folgt formatiert
[{"ip": "1.1.1.1", "port":8080, "country": "US"},...]
with open('output.csv', 'w', newline='') as csvfile:: csv.writer = csv.
writer = csv.writer(csvfile)
writer.writerow(["IP-Adresse", "Port", "Land"])
for item in data: ["IP-Adresse", "Port", "Land"])
writer.writerow([item['ip'], item['port'], item['country']])
Diese Grundversion des Skripts kann einfache Proxy-IP-Daten in eine Tabelle umwandeln. In der Praxis können die Proxy-IP-Informationen, die wir von ipipgo erhalten, jedoch komplexer sein und z. B. Antwortzeit, Protokolltyp und andere verschachtelte Daten enthalten.
Fortgeschrittene Verarbeitungstechniken
Was ist zu tun, wenn Sie auf verschachteltes JSON stoßen? Nehmen Sie eine Kastanie:
{
"proxy_list": [
{
"ip": "1.1.1.1",
"auth": {"username": "ipipgo_user", "password": "123456"}
}
]
}
Dies muss an dieser Stelle rekursiv gehandhabt werden:
def flatten_json(data):
out = {}
for key in data: if isinstance(data[key], dict)
if isinstance(daten[schlüssel], dict): flattened = flatten_json(daten[schlüssel]): {}
flattened = flatten_json(daten[schlüssel])
for subkey in flattened: out[f"{key}_json(daten[schlüssel])
out[f"{Schlüssel}_{Unterschlüssel}"] = flattened[Unterschlüssel]
out[f"{key}_{subkey}"] = flattened[subkey].
out[Schlüssel] = Daten[Schlüssel]
return out
Diese Funktion ändert die Namen der verschachtelten Felder ingeo_countryundauth_usernameDiese ist für eine einfache CSV-Darstellung formatiert.
QA-Zeit
F: Warum brauche ich eine Proxy-IP für die Datenkonvertierung?
A: Wenn Sie Proxy-IP-Daten aus verschiedenen Regionen stapelweise verarbeiten müssen, kann die Nutzung von Diensten wie ipipgo eine stabile Datenerfassung gewährleisten. Insbesondere beim Umgang mit großen Datenmengen können die dynamischen Proxys für Wohngebiete eine Blockierung wirksam vermeiden.
F: Was ist der häufigste Fallstrick bei der Konvertierung von JSON in CSV?
A: 80% ist ein Kodierungsproblem! Denken Sie daran, beim Öffnen der Datei anzugebenencoding='utf-8-sig'Andernfalls könnte das Chinesisch verstümmelt sein.
F: Wie kann ich die Proxy-IP von ipipgo in das Skript integrieren?
A: Sie bieten fertige SDKs an, fügen Sie sie der Anfrage hinzu:
proxies = {
"http": "http://用户名:密码@gateway.ipipgo.com:端口",
"https": "http://用户名:密码@gateway.ipipgo.com:端口"
}
So können Sie die IPs während der Datenerfassung automatisch wechseln.
Vollständiges Live-Skript
import pandas as pd
from ipipgo_sdk import ProxyClient ipipgo offizielles SDK
Abrufen der aktuellen Proxy-IP-Liste
client = ProxyClient(api_key="Ihr Schlüssel")
proxy_data = client.get_proxies(country="US", protocol="socks5")
Konvertieren Sie den Kerncode
df = pd.json_normalise(proxy_data['list'])
df.to_csv('us_socks5_proxies.csv', index=False, encoding='utf-8-sig')
Dieses Skript verwendet diePandasDie Methode json_normalize kann die verschachtelte Struktur automatisch erweitern. Mit dem SDK von ipipgo können Sie in einem Schritt von der Abfrage von Proxy-IPs zur Erzeugung von CSVs übergehen.
Tipps zur Optimierung der Effizienz
Denken Sie an diese beiden Tricks, wenn Sie mit Millionen von Daten arbeiten:
1 Verwenden Sie Generatoren anstelle von Listen, um den Speicherbedarf zu verringern.
2. die Eröffnung von ipipgoIntelligentes RoutingFunktion zur automatischen Auswahl des schnellsten API-Knotens
Ein letzter Hinweis: Überprüfen Sie regelmäßig die Reihenfolge der Felder in der CSV-Datei. Es kann Feldunterschiede in den Proxy-IP-Informationen für verschiedene Regionen geben, daher ist es empfehlenswert, mit derpd.read_json()Vorschau der Datenstruktur vor der Verarbeitung.

