BCP从SQL导出到CSV文件,元数据,标题行

时间:2018-02-01 17:36:19

标签: sql csv metadata bcp

我需要将SQL表中的数据导出为CSV格式。但我还需要: 1.元数据插入输出的第一行。这将是静态的。 2.元数据后的标题行。 3.数据。但是我需要具有多个值的字段(例如名称JOHN SMITH)才能进入""引号中的逗号和逗号分隔字段中的值。

以下是我的第一份以CSV格式获取数据的草稿:

{
  "response": {
  "features": {
  "conditions": 1
  }
    }
  , "current_observation": {
        "display_location": {
        "latitude":"40.466442",
        "longitude":"-85.362709",
        "elevation":"280.4"
        },
        "observation_time_rfc822":"Fri, 26 Jan 2018 09:40:16 -0500",
        "local_time_rfc822":"Sun, 28 Jan 2018 11:22:47 -0500",
        "local_epoch":"1517156567",
        "local_tz_short":"EST",
        "weather":"Clear",
        "temperature_string":"44.6 F (7.0 C)",
    }
}



import csv, json, sys
inputFile = open("pywu.cache.json", 'r') #open json file
outputFile = open("CurrentObs.csv", 'w') #load csv file
data = json.load(inputFile) #load json content 
inputFile.close() #close the input file
output = csv.writer(outputFile) #create a csv.write
output.writerow(data[0].keys())
for row in data:
    output = csv.writer(outputFile) #create a csv.write 
    output.writerow(data[0].keys())
for row in data:
    output.writerow(row.values()) #values row

非常感谢任何有用的提示或建议。

这就是我想要达到的目标:“josh @ gmail.com,vbear @ gmail.com" ITN_USER,SITE_ID,TICKET_NUMBER,VALIDATING_CARRIER_CODE,TICKET_ EXPIRATION_DATE,TICKET_CURR_CODE,RESIDUAL_TOTAL_AMT,TICKET_TOT AL_FARE,PASSENGER_NAME,FIRST_ORIG_APT_CODE,FIRST_DEST_APT_CODE,FIRST_DEPART_DATE,TICKET_ISSUE_DATE,CRS_LOCATOR,TICKET_STATUS _ID,TICKET_TYPE,RSVN_SYS_ID,TICKETING_LOCATION,TICKET_BASE_FAR E,TICKET_TAX,FARE_CALC_LINE vbear,abccorpus,0017845439769 ,AA,08MAY2009,USD,1226.57,1629.00,bear / vernon,MSY,ORD,17MAY2008,08MAY2008 ,,, electronic ,,,,, jsmith,abccorpus,0167846739059,UA,19JUN2009,USD,354.00,354.00,smith / john ,LAX,PDX,25JUN2008,19JUN2008 ,,,,,,,, dgarcia,abccorpmx,1327959759566,MX,03AUG2009,MXN,6828.06,6828。 06,加西亚/迭,MEX,GUA,07AUG2008,03AUG2008 ,,,电子,,,,,

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试创建视图并使用BCP语句中的视图。您可以在视图中执行所有计算。对于元数据,您需要与数据进行联合。所以你的观点会像......

Create view abc as 
   select 'Name' as Name, 'Age' as Age --Metadata 
      Union All
   Select Name , Cast(Age as Varchar(X)) from your table

确保为所有列提供cast varchar,因为您将进行联合。