初學python,已經可以把string內容通過各種split最后生成想要的csv格式,我已經把原始檔案、代碼、最后生成的csv上傳到了網盤。目前需要把這個csv的內容轉成sql格式,但是,我不會了。請問,能有人幫我寫一下最后的這個把array生成sql的代碼嗎?
資料和代碼在網盤 鏈接: https://pan.baidu.com/s/1E9YHEum093RqyPli8bEJqQ 提取碼: bk46
代碼見下:
#import ast
#import re
#with open('f:/amf/out/out.txt',"r",encoding='UTF-8') as f: #設定檔案物件
#import pandas as pd
import csv
def findkey (txtall, word1, word2):
#txt1 = []
#txt2 = []
txt1 = txtall.split(word1)
#print(txt1)
#print("這是定義def的txt[1]")
#print(txt1[1])
txt2 = txt1[1].split(word2)
return txt2[0]
#dayDesc_stuff = []
def remove_duplicates(l):
return sorted(set(l),key = l.index)
path = 'f:/amf/out/mini.txt'
#path = 'f:/amf/out/all.txt'
with open(path,"r") as f: #設定檔案物件
str = f.read() #可以是隨便對檔案的操作
#print(str)
#x = str.split("{")
#str = str.replace("}","{")
#print (str)
x = str.split("{'dayNo'") #{'dayNo'
#print (x)
length_x = len(x)
#print(length_x)
pyCode = []
dayNo = []
dayDesc = []
packDesc = []
name = []
freqCode = []
groupName = []
exPreItem = []
stuff = []
for i in range(len(x)):
result_packDesc = 'packDesc' in x[i]
result_pyCode = 'pyCode' in x[i]
result_dayDesc = 'dayDesc' in x[i]
result_name = 'name' in x[i]
result_freqCode = 'freqCode' in x[i]
result_groupName = 'groupName' in x[i]
result_exPreItem = 'exPreItem' in x[i]
if (result_packDesc == True) and (result_pyCode == True) and (result_dayDesc == True) and (result_name == True) and (result_freqCode == True) and (result_groupName == True) and (result_exPreItem == True):
stuff.append(x[i])
###下面是取pycode值
for i in range(len(stuff)):
# print(i)
pyCode_stuff = findkey(stuff[i],"'pyCode': '","'")
#print("這個是stuff[i_pyCode]")
#print(stuff[i])
pyCode.append(pyCode_stuff)
#print("下面是stuff[pyCode]")
#print(f"pyCode{[i]}={pyCode[i]}.")
# 下面是取dayDesc值
#print(stuff)
### 下面是取dayDesc值
for i in range(len(stuff)):
#print(i)
dayDesc_stuff = findkey(stuff[i], "'dayDesc': '", "'")
#print("這個是stuff[i_dayDesc]")
#print(stuff[i])
dayDesc.append(dayDesc_stuff)
#print("下面是stuff[dayDesc]")
#print(f"dayDesc{[i]}={dayDesc[i]}.")
### 下面是取dayNo值
for i in range(len(stuff)):
#print(i)
dayNo_stuff = findkey(stuff[i], ": ", ",")
#print("這個是stuff[i_dayDesc]")
#print(stuff[i])
dayNo.append(dayNo_stuff)
#print("下面是stuff[dayDesc]")
#print(f"dayNo{[i]}={dayNo[i]}.")
for i in range(len(stuff)):
#print(i)
packDesc_stuff = findkey(stuff[i], "'packDesc': ", ",")
#print("這個是stuff[i_dayDesc]")
#print(stuff[i])
packDesc.append(packDesc_stuff)
#print("下面是stuff[dayDesc]")
##print(f"packDesc{[i]}={packDesc[i]}.")
for i in range(len(stuff)):
#print(i)
freqCode_stuff = findkey(stuff[i], "'freqCode': '", "'")
#print("這個是stuff[i_dayDesc]")
#print(stuff[i])
freqCode.append(freqCode_stuff)
#print("下面是stuff[dayDesc]")
#print(f"freqCode{[i]}={freqCode[i]}.")
for i in range(len(stuff)):
#print(i)
groupName_stuff = findkey(stuff[i], "'groupName': '", "'")
#print("這個是stuff[i_dayDesc]")
#print(stuff[i])
groupName.append(groupName_stuff)
#print("下面是stuff[dayDesc]")
##print(f"groupName{[i]}={groupName[i]}.")
for i in range(len(stuff)):
#print(i)
name_stuff = findkey(stuff[i], "'name': '", "'")
#print("這個是stuff[i_dayDesc]")
#print(stuff[i])
name.append(name_stuff)
#print("下面是stuff[dayDesc]")
#print(f"name{i}={name[i]}.")
con = ","
bigString = []
for i in range(len(stuff)):
bigString.append(dayNo[i] + con + dayDesc[i] + con + packDesc[i] + con + name[i] + con + freqCode[i] + con + groupName[i] + con + pyCode[i])
#print (bigString[i])
simpleString = remove_duplicates(bigString)
#cutString = simpleString.split(",")
simple_day = []
simple_dayNo = []
simple_dayDesc = []
simple_packDesc = []
simple_name = []
simple_freqCode = []
simple_groupName = []
simple_pyCode = []
for i in range(len(simpleString)):
print(f"simpleString{i}={simpleString[i]}.")
simple_day.append(simpleString[i].split(","))
print(simple_day[i])
simple_dayNo.append(simple_day[i][0])
simple_dayDesc.append(simple_day[i][1])
simple_packDesc.append(simple_day[i][2])
simple_name.append(simple_day[i][3])
simple_freqCode.append(simple_day[i][4])
simple_groupName.append(simple_day[i][5])
simple_pyCode.append(simple_day[i][6])
#print(simple_pyCode[i])
###將陣列寫入csv
#任意的多組串列
#a = [1,2,3]
#b = [4,5,6]
#字典中的key值即為csv中列名
#dataframe = pd.DataFrame({'dayNo':simple_dayNo,'b_name':b})
#將DataFrame存盤為csv,index表示是否顯示行名,default=True
#dataframe.to_csv("test.csv",index=False,sep=',')
#python2可以用file替代open
with open("data.csv","w",newline = "") as csvfile:
writer = csv.writer(csvfile)
#先寫入columns_name
writer.writerow(["dayNo","dayDesc","packDesc","name","freqCode","groupName","pyCode"])
#寫入多行用writerows
for i in range (len(simpleString)):
#writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
writer.writerows([[simple_name[i],simple_dayNo[i],simple_dayDesc[i],simple_packDesc[i],simple_freqCode[i],simple_groupName[i],simple_pyCode[i]]])
#print(simpleString[i])
#writer.writerows([[simpleString[i]]])
uj5u.com熱心網友回復:
sql格式是什么格式,是程式中的代碼拼接,還是寫到資料庫uj5u.com熱心網友回復:
sql是指資料庫檔案,不是代碼拼接,想最后形成php一個網頁查找的功能。我目前也不懂什么叫代碼拼接。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/18194.html
