Ich bin sehr neu in Python und versuche, eine Antwort von der URL für jeden Benutzer in der Datei user.csv zurückzugeben, die JSON-Nachricht zurückzugeben und sie dann in eine CSV-Datei zu zerlegen . Ich bin mir nicht sicher, was ich in den Rückgabebereich schreiben soll oder wie ich die Nachricht aufteilen soll. Dies ist ein Beispiel für die Nachricht, die mir zurückgegeben wird, wenn ich die HTTP-Anforderung erhalten:Verwenden von Python zum Senden einer HTTP-Anfrage und zum Analysieren von JSON
{"msg": {"mes": "four", "high": 1230, "low": 0}}"
Hier ist, was ich bisher habe, aber ich bin immer einen Fehler:
TypeError: expected string or buffer
import requests
import json
import csv
def getRows(data):
return []
url = 'http://test_url'
with open('user.csv', 'rU') as data_file:
data = csv.DictReader(data_file)
for row in data:
current_user = row['mdn']
r = requests.get(url)
data = json.loads(data)
fname = "mydata.csv"
with open(fname,'wb') as outf:
outcsv = csv.writer(outf)
outcsv.writerows(getRows(data))
können Sie mehr Details (oder vielleicht ein Beispiel) auf den Inhalt Ihrer Eingabe csv-Datei (mdn.csv) geben? Können Sie auch genauer angeben, welche Rolle der "current_user" in der Anfrage hat? Wenn Sie nur r = requests.get (URL) für jeden Benutzer aufrufen, erhalten Sie immer die gleiche Antwort – caspillaga
die Eingabe csv-Datei hat eine Liste von Benutzern. Jeder wird die URL treffen und eine JSON-Nachricht zurückgeben, die der von mir angegebenen ähnelt. Ich möchte dann den Benutzer, Nachricht, und analysieren Sie es und konvertieren Sie die gesamte Liste mit der JSON-Nachricht in eine CSV. – c3win90
Ok, aber was ist der Unterschied zwischen der Anfrage für user1 und user2? In Ihrem Code ist die Anfrage für jeden Benutzer identisch, sodass die Antworten für alle Benutzer immer dieselben sind. Vielleicht solltest du current_user irgendwie in der Anfrage senden? – caspillaga