Я вызываю json при нажатии кнопки входа в систему
@IBAction func loginClicked(sender : AnyObject){
var request = NSMutableURLRequest(URL: NSURL(string: kLoginURL)) // Here, kLogin contains the Login API.
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(self.criteriaDic(), options: nil, error: &err) // This Line fills the web service with required parameters.
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
// println("Response: \(response)")
var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Body: \(strData)")
var err1: NSError?
var json2 = NSJSONSerialization.JSONObjectWithData(strData.dataUsingEncoding(NSUTF8StringEncoding), options: .MutableLeaves, error:&err1 ) as NSDictionary
println("json2 :\(json2)")
if(err) {
println(err!.localizedDescription)
}
else {
var success = json2["success"] as? Int
println("Succes: \(success)")
}
})
task.resume()
}
Здесь я сделал отдельный словарь для параметров.
var params = ["format":"json", "MobileType":"IOS","MIN":"f8d16d98ad12acdbbe1de647414495ec","UserName":emailTxtField.text,"PWD":passwordTxtField.text,"SigninVia":"SH"]as NSDictionary
return params
}
Первое, что я замечаю, это:
flat_json = json_normalize(act_json_data)
print(flat_json)
Conndf = pd.DataFrame(flat_json)
, когда вы делаете flat_json = json_normalize(act_json_data)
, flat_json
уже является фреймом данных. Выполнение Conndf = pd.DataFrame(flat_json)
излишне и избыточно, хотя не должно вызывать проблем, это просто дополнительный код, который вам не нужен.
Finaldf.append(Conndf)
на
Finaldf = Finaldf.append(Conndf)
Я бы также просто пересмотрел индекс, так как это просто моя привычка, когда я добавляю кадры данных:
Finaldf = Finaldf.append(Conndf).reset_index(drop=True)
[ 1113] Кроме этой 1 строки, она выглядит нормально, и вы должны получить полный кадр данных, сохраненный в csv с помощью Finaldf.to_csv('NewTest.csv')