我的数据如下:
import java.sql.*;
public class DBconn {
private Connection con;
public Statement st;
public ResultSet rs;
public DBconn(){
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:sqlserver://ARZ_Daunte-PC\\MSSQLSERVER;databaseName=OnlineAccommodationSystem","sa","root");
st = con.createStatement();
}catch (Exception e){
System.out.println("Error "+e);
}
}
public void getData(){
try{
String query = "select * Addinglandlords";
rs =st.executeQuery(query);
System.out.println("record from database");
while(rs.next()){
String firstname=rs.getString("firstname");
String lastname=rs.getString("lastname");
String landlordID=rs.getString("landlordID");
String email=rs.getString("email");
String contactNO=rs.getString("contactNO");
System.out.println("First name :"+firstname);
System.out.println("Last name: "+lastname);
System.out.println("Landlord ID: "+landlordID);
System.out.println("Email: "+email);
System.out.println("Contact No: "+contactNO);
}
}catch (Exception e){
System.out.println("Error "+e);
}
}
}
我很简单(!!)想要写出一个文件:
print(data['ra'][0], data['dec'][0])
308.3194375 89.9638467
TypeError:write()只接受一个参数(给定3个)。
为什么这么难做?!?!?
答案 0 :(得分:2)
您在3
中传递了write
参数,这是错误的。
f = open('output.dat', 'w')
for ii in range(0, 10):
f.write("%d %d %d" % (long(ii), data['ra'][ii], data['dec'][ii]))
f.close()
答案 1 :(得分:0)
@Nilesh对于这个特定错误是正确的,但更广泛的问题似乎是“如何将数据写入csv?”。您没有指定数据存储在哪个数据结构中,但它看起来很像Pandas数据帧,在这种情况下data.to_csv()
将使此过程更加简单。
如果它还不是数据框,那么您可以将其转换为:
import pandas as pd
df = pd.DataFrame({'ra': data['ra'], 'dec': data['dec']})
df.to_csv('output.dat', sep=' ')
如果您正在使用其他类型的结构(例如numpy记录数组或AstroPy表),您可以找到特定于这些数据结构的类似功能。
答案 2 :(得分:0)
只需在write函数周围添加另一对括号,它就可以工作。