如何删除引号时,我转储到另一个文件?



我对python很陌生(2天),所以请原谅我。我试图将yaml从文件readCsv.py发送到getData。yml文件。我认为一切都很好,但我正在从readCsv.py发送到getdata . html的导出yaml周围引用。为什么?

这就是奇迹发生的地方,readCsv.py:

import csv
import pandas
import yaml
""" Reading whole csv file with panda library """
df = pandas.read_csv('chord-progressions.csv')
""" Read in csv, but easy read with pandas """
""" print(df) """
""" Convert csv to yml """
text = yaml.dump(
df.to_dict(orient='records'),
sort_keys=False, width=72, indent=4)
print(text)
""" Export the recently converted yml to getData.yml """
with open('getData.yml', 'w') as outfile:
yaml.dump(text, outfile, default_flow_style=False)

我的getData中的输出。yml文件:

"-   1st chord: 4n    2nd chord: 1n    3rd chord: 5n    4th chord: Alternativen
    Progression: .nann-   1st chord: 4n    2nd chord: 1n    3rd chord: 5n 
   4th chord: Catchyn    Progression: .nann-   1st chord: 1n    2nd chord: 1n
    3rd chord: 1n    4th chord: Didgeridoon    Progression: .nann-   1st chord:
 6n    2nd chord: 4n    3rd chord: 5n    4th chord: Dreadfuln    Progression:
 .nann-   1st chord: 6n    2nd chord: 2n    3rd chord: 5n    4th chord: Dreadfuln
    Progression: .nann-   1st chord: 6n    2nd chord: 2n    3rd chord: 4n 
   4th chord: Endlessn    Progression: .nann-   1st chord: 3n    2nd chord:
 4n    3rd chord: 6n    4th chord: Energeticn    Progression: .nann-   1st
 chord: 5n    2nd chord: 1n    3rd chord: 4n    4th chord: Folkn    Progression:
 .nann-   1st chord: 6n    2nd chord: 1n    3rd chord: 4n    4th chord: Folkn
    Progression: .nann-   1st chord: 5n    2nd chord: 4n    3rd chord: 3n 
   4th chord: Flamencon    Progression: .nann-   1st chord: 5n    2nd chord:
 6n    3rd chord: 5n    4th chord: Flamencon    Progression: .nann-   1st chord:
 4n    2nd chord: 3n    3rd chord: 6n    4th chord: Grungen    Progression:
 .nann-   1st chord: 5n    2nd chord: 1n    3rd chord: 6n    4th chord: Jazzn
    Progression: .nann-   1st chord: 4n    2nd chord: 5n    3rd chord: 4n 
   4th chord: Loven    Progression: .nann-   1st chord: 4n    2nd chord: 1n
    3rd chord: 5n    4th chord: Memoriesn    Progression: .nann-   1st chord:
 5n    2nd chord: 6n    3rd chord: 4n    4th chord: Popn    Progression: .nann
-   1st chord: 6n    2nd chord: 3n    3rd chord: 7n    4th chord: Popn    Progression:
 .nann-   1st chord: 1n    2nd chord: 4n    3rd chord: 5n    4th chord: Rebelliousn
    Progression: .nann-   1st chord: 4n    2nd chord: 5n    3rd chord: 5n 
   4th chord: Sadn    Progression: .nann-   1st chord: 5n    2nd chord: 4n
    3rd chord: 4n    4th chord: Sadn    Progression: .nann-   1st chord: 4n
    2nd chord: 5n    3rd chord: 4n    4th chord: Sadn    Progression: .nann
-   1st chord: 4n    2nd chord: 1n    3rd chord: 1n    4th chord: Sweetn   
 Progression: .nann-   1st chord: 4n    2nd chord: 1n    3rd chord: 4n    4th
 chord: Simplen    Progression: .nann-   1st chord: 5n    2nd chord: 5n   
 3rd chord: 1n    4th chord: Simplen    Progression: .nann-   1st chord: 4n
    2nd chord: 1n    3rd chord: 4n    4th chord: Wildsiden    Progression: .nann
-   1st chord: 1n    2nd chord: 4n    3rd chord: 6n    4th chord: Wistfuln 
   Progression: .nann-   1st chord: 1n    2nd chord: 5n    3rd chord: 7n  
  4th chord: Moodyn    Progression: .nann-   1st chord: 1n    2nd chord: 7n
    3rd chord: 6n    4th chord: Moodyn    Progression: .nann"

这里发生的事情是,您两次转储您的yaml。首先,在这一行:

""" Convert csv to yml """
text = yaml.dump(
df.to_dict(orient='records'),
sort_keys=False, width=72, indent=4)

此时,text是一个字符串,包含您的yaml值。

然后,再次转储,在这里:

""" Export the recently converted yml to getData.yml """
with open('getData.yml', 'w') as outfile:
yaml.dump(text, outfile, default_flow_style=False)

因为你要转储的只是一个字符串,它会在你的文件中显示为一个字符串。您可以直接将字符串写入文件:

with open('getData.yml', 'w') as outfile:
outfile.write(text)

或者,您可以直接将csv转储到yaml中,如下所示:

with open('getData.yml', 'w') as outfile:
yaml.dump(
df.to_dict(orient='records'), outfile,
sort_keys=False, width=72, indent=4, default_flow_style=False)

text已经是YAML;你不需要第二次编码。

with open('getData.yml', 'w') as outfile:
print(text, file=outfile)

with open('getData.yml', 'w') as outfile:
yaml.dump(
df.to_dict(orient='records'),
outfile,
sort_keys=False,
width=72,
indent=4
)

最新更新