teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

2020/08/22 00:52

投稿

mtomsy
mtomsy

スコア6

title CHANGED
File without changes
body CHANGED
@@ -21,10 +21,10 @@
21
21
  元ファイルの値を変えることなく書き出す方法はあるのでしょうか。
22
22
 
23
23
  ### 試したこと
24
- yaml.safe_load に関しては、まずreadで文字列として読み込むことでことで回避ができました。
24
+ yaml.safe_load に関しては、まずreadで文字列として読み込むことで回避ができました。
25
25
 
26
26
  しかし、yaml.dump については回避方法がわかりません。
27
- yaml.dumpのようにyamlファイルに改行やインデントをつけて書き出したい、writeだと希望の結果になりません
27
+ yaml.dumpのようにyamlファイルに改行やインデントをつけて書き出したいです。
28
28
 
29
29
  ### 該当のソースコード / 実行内容
30
30
  ######file_in.yaml

2

ソースの不備を修正

2020/08/22 00:51

投稿

mtomsy
mtomsy

スコア6

title CHANGED
File without changes
body CHANGED
@@ -45,11 +45,11 @@
45
45
  ```Python3
46
46
  import yaml
47
47
 
48
- with open(file_in.yaml, 'rt') as f:
48
+ with open("file_in.yaml", 'rt') as f:
49
49
  text = f.read()
50
50
  data = yaml.safe_load(text)
51
51
 
52
- with open(file_out.yaml, 'w') as f:
52
+ with open("file_out.yaml", 'w') as f:
53
53
  yaml.dump(data, f, sort_keys=False)
54
54
 
55
55
  ```

1

項目の順序を変更

2020/08/21 13:00

投稿

mtomsy
mtomsy

スコア6

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,10 @@
3
3
  PyYAMLを使って書き出しをしようしているのですが、yaml.dumpをすると一部の値が勝手に書き換わってしまいます。
4
4
  これを回避する方法について、アドバイスをいただきたいです。
5
5
 
6
+ ### 環境
7
+ - Python 3.6.8
8
+ - PyYAML 5.3.1
9
+
6
10
  ### 発生している問題・エラーメッセージ
7
11
  読み込むyamlファイルは以下の条件を満たしています。
8
12
  0. 空白(null)のvalueが存在
@@ -16,10 +20,12 @@
16
20
 
17
21
  元ファイルの値を変えることなく書き出す方法はあるのでしょうか。
18
22
 
19
- ### 環境
23
+ ### 試したこと
20
- - Python 3.6.8
24
+ yaml.safe_load に関しては、まずreadで文字列として読み込むことでことで回避ができました。
21
- - PyYAML 5.3.1
22
25
 
26
+ しかし、yaml.dump については回避方法がわかりません。
27
+ yaml.dumpのようにyamlファイルに改行やインデントをつけて書き出したいので、writeだと希望の結果になりません
28
+
23
29
  ### 該当のソースコード / 実行内容
24
30
  ######file_in.yaml
25
31
  ```yaml
@@ -60,9 +66,4 @@
60
66
  bool4: false
61
67
  ex3:
62
68
  times: 750
63
- ```
69
+ ```
64
- ### 試したこと
65
- yaml.safe_load に関しては、まずreadで文字列として読み込むことでことで回避ができました。
66
-
67
- しかし、yaml.dump については回避方法がわかりません。
68
- yaml.dumpのようにyamlファイルに改行やインデントをつけて書き出したいので、writeだと希望の結果になりません