当我转储到另一个文件时如何删除引号?
How to remove quotes when I dump to another file?
我对 python(2 天)还很陌生,所以请多多包涵。
我正在尝试将 yaml 从文件 readCsv.py 发送到 getData.yml 文件。我认为一切正常,但我收到了关于我从 readCsv.py 发送到 getData.tml 的导出 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: 4\n 2nd chord: 1\n 3rd chord: 5\n 4th chord: Alternative\n\
\ Progression: .nan\n- 1st chord: 4\n 2nd chord: 1\n 3rd chord: 5\n \
\ 4th chord: Catchy\n Progression: .nan\n- 1st chord: 1\n 2nd chord: 1\n\
\ 3rd chord: 1\n 4th chord: Didgeridoo\n Progression: .nan\n- 1st chord:\
\ 6\n 2nd chord: 4\n 3rd chord: 5\n 4th chord: Dreadful\n Progression:\
\ .nan\n- 1st chord: 6\n 2nd chord: 2\n 3rd chord: 5\n 4th chord: Dreadful\n\
\ Progression: .nan\n- 1st chord: 6\n 2nd chord: 2\n 3rd chord: 4\n \
\ 4th chord: Endless\n Progression: .nan\n- 1st chord: 3\n 2nd chord:\
\ 4\n 3rd chord: 6\n 4th chord: Energetic\n Progression: .nan\n- 1st\
\ chord: 5\n 2nd chord: 1\n 3rd chord: 4\n 4th chord: Folk\n Progression:\
\ .nan\n- 1st chord: 6\n 2nd chord: 1\n 3rd chord: 4\n 4th chord: Folk\n\
\ Progression: .nan\n- 1st chord: 5\n 2nd chord: 4\n 3rd chord: 3\n \
\ 4th chord: Flamenco\n Progression: .nan\n- 1st chord: 5\n 2nd chord:\
\ 6\n 3rd chord: 5\n 4th chord: Flamenco\n Progression: .nan\n- 1st chord:\
\ 4\n 2nd chord: 3\n 3rd chord: 6\n 4th chord: Grunge\n Progression:\
\ .nan\n- 1st chord: 5\n 2nd chord: 1\n 3rd chord: 6\n 4th chord: Jazz\n\
\ Progression: .nan\n- 1st chord: 4\n 2nd chord: 5\n 3rd chord: 4\n \
\ 4th chord: Love\n Progression: .nan\n- 1st chord: 4\n 2nd chord: 1\n\
\ 3rd chord: 5\n 4th chord: Memories\n Progression: .nan\n- 1st chord:\
\ 5\n 2nd chord: 6\n 3rd chord: 4\n 4th chord: Pop\n Progression: .nan\n\
- 1st chord: 6\n 2nd chord: 3\n 3rd chord: 7\n 4th chord: Pop\n Progression:\
\ .nan\n- 1st chord: 1\n 2nd chord: 4\n 3rd chord: 5\n 4th chord: Rebellious\n\
\ Progression: .nan\n- 1st chord: 4\n 2nd chord: 5\n 3rd chord: 5\n \
\ 4th chord: Sad\n Progression: .nan\n- 1st chord: 5\n 2nd chord: 4\n\
\ 3rd chord: 4\n 4th chord: Sad\n Progression: .nan\n- 1st chord: 4\n\
\ 2nd chord: 5\n 3rd chord: 4\n 4th chord: Sad\n Progression: .nan\n\
- 1st chord: 4\n 2nd chord: 1\n 3rd chord: 1\n 4th chord: Sweet\n \
\ Progression: .nan\n- 1st chord: 4\n 2nd chord: 1\n 3rd chord: 4\n 4th\
\ chord: Simple\n Progression: .nan\n- 1st chord: 5\n 2nd chord: 5\n \
\ 3rd chord: 1\n 4th chord: Simple\n Progression: .nan\n- 1st chord: 4\n\
\ 2nd chord: 1\n 3rd chord: 4\n 4th chord: Wildside\n Progression: .nan\n\
- 1st chord: 1\n 2nd chord: 4\n 3rd chord: 6\n 4th chord: Wistful\n \
\ Progression: .nan\n- 1st chord: 1\n 2nd chord: 5\n 3rd chord: 7\n \
\ 4th chord: Moody\n Progression: .nan\n- 1st chord: 1\n 2nd chord: 7\n\
\ 3rd chord: 6\n 4th chord: Moody\n Progression: .nan\n"
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
)
这里发生的事情是,您将 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)
我对 python(2 天)还很陌生,所以请多多包涵。 我正在尝试将 yaml 从文件 readCsv.py 发送到 getData.yml 文件。我认为一切正常,但我收到了关于我从 readCsv.py 发送到 getData.tml 的导出 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: 4\n 2nd chord: 1\n 3rd chord: 5\n 4th chord: Alternative\n\
\ Progression: .nan\n- 1st chord: 4\n 2nd chord: 1\n 3rd chord: 5\n \
\ 4th chord: Catchy\n Progression: .nan\n- 1st chord: 1\n 2nd chord: 1\n\
\ 3rd chord: 1\n 4th chord: Didgeridoo\n Progression: .nan\n- 1st chord:\
\ 6\n 2nd chord: 4\n 3rd chord: 5\n 4th chord: Dreadful\n Progression:\
\ .nan\n- 1st chord: 6\n 2nd chord: 2\n 3rd chord: 5\n 4th chord: Dreadful\n\
\ Progression: .nan\n- 1st chord: 6\n 2nd chord: 2\n 3rd chord: 4\n \
\ 4th chord: Endless\n Progression: .nan\n- 1st chord: 3\n 2nd chord:\
\ 4\n 3rd chord: 6\n 4th chord: Energetic\n Progression: .nan\n- 1st\
\ chord: 5\n 2nd chord: 1\n 3rd chord: 4\n 4th chord: Folk\n Progression:\
\ .nan\n- 1st chord: 6\n 2nd chord: 1\n 3rd chord: 4\n 4th chord: Folk\n\
\ Progression: .nan\n- 1st chord: 5\n 2nd chord: 4\n 3rd chord: 3\n \
\ 4th chord: Flamenco\n Progression: .nan\n- 1st chord: 5\n 2nd chord:\
\ 6\n 3rd chord: 5\n 4th chord: Flamenco\n Progression: .nan\n- 1st chord:\
\ 4\n 2nd chord: 3\n 3rd chord: 6\n 4th chord: Grunge\n Progression:\
\ .nan\n- 1st chord: 5\n 2nd chord: 1\n 3rd chord: 6\n 4th chord: Jazz\n\
\ Progression: .nan\n- 1st chord: 4\n 2nd chord: 5\n 3rd chord: 4\n \
\ 4th chord: Love\n Progression: .nan\n- 1st chord: 4\n 2nd chord: 1\n\
\ 3rd chord: 5\n 4th chord: Memories\n Progression: .nan\n- 1st chord:\
\ 5\n 2nd chord: 6\n 3rd chord: 4\n 4th chord: Pop\n Progression: .nan\n\
- 1st chord: 6\n 2nd chord: 3\n 3rd chord: 7\n 4th chord: Pop\n Progression:\
\ .nan\n- 1st chord: 1\n 2nd chord: 4\n 3rd chord: 5\n 4th chord: Rebellious\n\
\ Progression: .nan\n- 1st chord: 4\n 2nd chord: 5\n 3rd chord: 5\n \
\ 4th chord: Sad\n Progression: .nan\n- 1st chord: 5\n 2nd chord: 4\n\
\ 3rd chord: 4\n 4th chord: Sad\n Progression: .nan\n- 1st chord: 4\n\
\ 2nd chord: 5\n 3rd chord: 4\n 4th chord: Sad\n Progression: .nan\n\
- 1st chord: 4\n 2nd chord: 1\n 3rd chord: 1\n 4th chord: Sweet\n \
\ Progression: .nan\n- 1st chord: 4\n 2nd chord: 1\n 3rd chord: 4\n 4th\
\ chord: Simple\n Progression: .nan\n- 1st chord: 5\n 2nd chord: 5\n \
\ 3rd chord: 1\n 4th chord: Simple\n Progression: .nan\n- 1st chord: 4\n\
\ 2nd chord: 1\n 3rd chord: 4\n 4th chord: Wildside\n Progression: .nan\n\
- 1st chord: 1\n 2nd chord: 4\n 3rd chord: 6\n 4th chord: Wistful\n \
\ Progression: .nan\n- 1st chord: 1\n 2nd chord: 5\n 3rd chord: 7\n \
\ 4th chord: Moody\n Progression: .nan\n- 1st chord: 1\n 2nd chord: 7\n\
\ 3rd chord: 6\n 4th chord: Moody\n Progression: .nan\n"
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
)
这里发生的事情是,您将 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)