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

回答編集履歴

3

修正

2018/12/07 03:12

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -45,7 +45,7 @@
45
45
  if len(fed) > 0:
46
46
  ret.append(fed)
47
47
 
48
- fed = {'text':[],'authors':[]}
48
+ fed = {'name':line, 'text':[],'authors':[]}
49
49
  auth= {}
50
50
  state = 'GET_FED_TEXT'
51
51
  continue
@@ -74,27 +74,40 @@
74
74
  pprint( ret)
75
75
  """
76
76
  [{'authors': [{'name': ' MADISON', 'text': [' aa', ' bb']}],
77
+ 'name': 'FEDERALIST No.1',
77
78
  'text': [' pen', ' apple']},
78
79
  {'authors': [{'name': ' JOHN', 'text': [' cc']},
79
80
  {'name': ' PAUL', 'text': [' dd']}],
81
+ 'name': 'FEDERALIST No.2',
80
82
  'text': [' banana', ' orange', ' melon']},
81
83
  {'authors': [{'name': ' EMILY', 'text': [' ee', ' ff']}],
84
+ 'name': 'FEDERALIST No.3',
82
85
  'text': [' bass', ' guiter']}]
83
86
  """
84
87
  ```
85
88
 
86
89
  あとは適宜必要なデータを抜き出して出力できます。
90
+ なお、間の空白行は解析に面倒なのでデータ抽出時に捨てています。
91
+ よって、出力時に補う必要はあります。下記例では補っていません。
87
92
  ```Python
88
93
  for fed in ret:
94
+ print(fed['name'])
89
- for line in fed['text']:
95
+ for line in fed['text']:
90
- print(line)
96
+ print(line)
97
+ print(fed['authors'][0]['name'])
91
98
  """
99
+ FEDERALIST No.1
92
100
  pen
93
101
  apple
102
+ MADISON
103
+ FEDERALIST No.2
94
104
  banana
95
105
  orange
96
106
  melon
107
+ JOHN
108
+ FEDERALIST No.3
97
109
  bass
98
110
  guiter
111
+ EMILY
99
112
  """
100
113
  ```

2

追記

2018/12/07 03:11

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -81,4 +81,20 @@
81
81
  {'authors': [{'name': ' EMILY', 'text': [' ee', ' ff']}],
82
82
  'text': [' bass', ' guiter']}]
83
83
  """
84
+ ```
85
+
86
+ あとは適宜必要なデータを抜き出して出力できます。
87
+ ```Python
88
+ for fed in ret:
89
+ for line in fed['text']:
90
+ print(line)
91
+ """
92
+ pen
93
+ apple
94
+ banana
95
+ orange
96
+ melon
97
+ bass
98
+ guiter
99
+ """
84
100
  ```

1

追記

2018/12/07 02:27

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,4 +1,7 @@
1
+ 0. 章は「FEDERALIST~」ではじまる
2
+ 0. 章のタイトル、章の内容には全部大文字の行がない
3
+
1
- 章のタイトル、章の内容には全部大文字の行がないという条件を満たば、以下のような処理でデータを抜き出せます。
4
+ という条件を満たすデータであれば、以下のような処理でデータを抜き出せます。
2
5
  ```Python
3
6
  from pprint import pprint
4
7