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

質問編集履歴

7

table情報追加

2018/06/25 02:35

投稿

s_akira
s_akira

スコア15

title CHANGED
File without changes
body CHANGED
@@ -13,6 +13,8 @@
13
13
  #cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
14
14
 
15
15
  cur.execute("SELECT カラム1, カラム2, カラム3, カラム4 from test")
16
+ #またはこっち
17
+ #cur.execute("SELECT * from test")
16
18
  results = cur.fetchall()
17
19
 
18
20
  dict_result = []
@@ -38,7 +40,7 @@
38
40
  "カラム3": "C"
39
41
 
40
42
  printすると以下で表示されています。
41
- [(‘カラム2’, B), (‘カラム1’, ‘A’),(‘カラム4’, ‘D),(‘カラム3’, ‘C’)]
43
+ [Record(column1='A ', column2='B ', column3='C ', column4='D ')]
42
44
 
43
45
  これを、以下のようにテーブルのカラムの順番で表示させたいです。
44
46
 
@@ -57,4 +59,24 @@
57
59
 
58
60
  〜備考〜
59
61
  ・言語:Python
60
- ・DB:postgresql
62
+ ・DB:postgresql
63
+ ・Create文:
64
+ create table test (
65
+ column1 character(10)
66
+ ,column2 character(10)
67
+ ,column3 character(10)
68
+ ,column4 character(10)
69
+ )
70
+ ・insert文
71
+ insert INTO test (
72
+ column1,
73
+ column2,
74
+ column3,
75
+ column4
76
+ )
77
+ VALUES
78
+ ( 'A',
79
+ 'B',
80
+ 'C',
81
+ 'D'
82
+ )

6

アドバイス後の修正追記

2018/06/25 02:35

投稿

s_akira
s_akira

スコア15

title CHANGED
File without changes
body CHANGED
@@ -4,16 +4,21 @@
4
4
  selectで取得した結果(カラムの順番のまま)を、ファイルに出力したのですがどうしたらいいでしょうか。
5
5
   ※7行目の"dict"で順番が変更されてしまっていると思います。
6
6
 
7
+ コメントアウトした箇所を変更しましたら、順番がselectのとおりとなりました。(ありがとうございます。)
8
+ が、ファイル出力には、カラム名が出力されない状態です。
9
+
7
10
  ```Python
8
11
  conn = psycopg2.connect(hostとかの設定)
12
+ cur = conn.cursor(cursor_factory=psycopg2.extras.NamedTupleCursor)
9
- cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
13
+ #cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
10
14
 
11
15
  cur.execute("SELECT カラム1, カラム2, カラム3, カラム4 from test")
12
16
  results = cur.fetchall()
13
17
 
14
18
  dict_result = []
15
19
  for row in results:
20
+ dict_result.append(row._asdict())
16
- dict_result.append(dict(row))
21
+ #dict_result.append(dict(row))
17
22
 
18
23
  with open(filename, "w") as f:
19
24
  json.dump(results, f, indent=4)

5

表示修正

2018/06/24 17:25

投稿

s_akira
s_akira

スコア15

title CHANGED
File without changes
body CHANGED
@@ -27,20 +27,20 @@
27
27
 
28
28
  を上記コードで実行すると、以下のような感じでバラバラにされてしまいます。(ファイル出力時)
29
29
 
30
- "カラム2": B,
30
+ "カラム2": "B",
31
- "カラム1": A,
31
+ "カラム1": "A",
32
- "カラム4": D,
32
+ "カラム4": "D",
33
- "カラム3": C
33
+ "カラム3": "C"
34
34
 
35
35
  printすると以下で表示されています。
36
36
  [(‘カラム2’, B), (‘カラム1’, ‘A’),(‘カラム4’, ‘D’),(‘カラム3’, ‘C’)]
37
37
 
38
38
  これを、以下のようにテーブルのカラムの順番で表示させたいです。
39
39
 
40
-   ”カラム1":A,
40
+   ”カラム1":"A",
41
-   ”カラム2":B,
41
+   ”カラム2":"B",
42
-   ”カラム3":C,
42
+   ”カラム3":"C",
43
-   "カラム4":D
43
+   "カラム4":"D"
44
44
 
45
45
 
46
46
  検索をかけているのですがうまくいきません。以下、参考にしているURLです。

4

表記修正

2018/06/24 14:18

投稿

s_akira
s_akira

スコア15

title CHANGED
File without changes
body CHANGED
@@ -27,24 +27,22 @@
27
27
 
28
28
  を上記コードで実行すると、以下のような感じでバラバラにされてしまいます。(ファイル出力時)
29
29
 
30
-   ”カラム2:B
30
+ "カラム2": B,
31
-   ”カラム1:A
31
+ "カラム1": A,
32
+ "カラム4": D,
32
-   "カラム4:D"
33
+ "カラム3": C
33
-   ”カラム3:C”
34
34
 
35
+ printすると以下で表示されています。
36
+ [(‘カラム2’, B), (‘カラム1’, ‘A’),(‘カラム4’, ‘D’),(‘カラム3’, ‘C’)]
35
37
 
36
38
  これを、以下のようにテーブルのカラムの順番で表示させたいです。
37
39
 
38
-   ”カラム1:A
40
+   ”カラム1":A,
39
-   ”カラム2:B
41
+   ”カラム2":B,
40
-   ”カラム3:C
42
+   ”カラム3":C,
41
-   "カラム4:D"
43
+   "カラム4":D
42
44
 
43
45
 
44
- 実際、printすると以下で表示されています。
45
- [(‘カラム2’, B), (‘カラム1’, ‘A’),(‘カラム4’, ‘D’),(‘カラム3’, ‘C’)]
46
-
47
-
48
46
  検索をかけているのですがうまくいきません。以下、参考にしているURLです。
49
47
  [Pythonでリスト(配列)に要素を追加](https://note.nkmk.me/python-list-append-extend-insert/)
50
48
  [Python psycopg2 で dict形式で結果を取得](https://qiita.com/itoufo/items/7306122497fd4f712bff)

3

リンク修正

2018/06/24 14:14

投稿

s_akira
s_akira

スコア15

title CHANGED
File without changes
body CHANGED
@@ -42,13 +42,13 @@
42
42
 
43
43
 
44
44
  実際、printすると以下で表示されています。
45
- [(‘カラム2’, B), (‘カラム1’, ‘A’), (‘カラム3’, ‘C’), (‘カラム4’, ‘D’)]
45
+ [(‘カラム2’, B), (‘カラム1’, ‘A’),(‘カラム4’, ‘D’),(‘カラム3’, ‘C’)]
46
46
 
47
47
 
48
48
  検索をかけているのですがうまくいきません。以下、参考にしているURLです。
49
- [https://note.nkmk.me/python-list-append-extend-insert/]
49
+ [Pythonでリスト(配列)に要素を追加](https://note.nkmk.me/python-list-append-extend-insert/)
50
- [https://qiita.com/itoufo/items/7306122497fd4f712bff]
50
+ [Python psycopg2 で dict形式で結果を取得](https://qiita.com/itoufo/items/7306122497fd4f712bff)
51
- [https://note.nkmk.me/python-dict-create/]
51
+ [Pythonで辞書を作成するdict()と波括弧、辞書内包表記](https://note.nkmk.me/python-dict-create/)
52
52
 
53
53
  すみませんが、よろしくお願い致します。
54
54
 

2

表記修正

2018/06/24 14:10

投稿

s_akira
s_akira

スコア15

title CHANGED
File without changes
body CHANGED
@@ -25,7 +25,7 @@
25
25
  |:--|:--:|--:|--:|
26
26
  |A|B|C|D|
27
27
 
28
- を上記コードで実行すると、以下のような感じでバラバラにされてしまいます。
28
+ を上記コードで実行すると、以下のような感じでバラバラにされてしまいます。(ファイル出力時)
29
29
 
30
30
    ”カラム2:B”
31
31
    ”カラム1:A”
@@ -42,7 +42,7 @@
42
42
 
43
43
 
44
44
  実際、printすると以下で表示されています。
45
- [(‘カラム2’, B), (‘カラム1’, ‘B’), (‘カラム4’, ‘D’)]
45
+ [(‘カラム2’, B), (‘カラム1’, ‘A’), (‘カラム3’, ‘C’), (‘カラム4’, ‘D’)]
46
46
 
47
47
 
48
48
  検索をかけているのですがうまくいきません。以下、参考にしているURLです。

1

リンク表示されていない箇所の変更、表示結果、sqlの変更

2018/06/24 14:06

投稿

s_akira
s_akira

スコア15

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  conn = psycopg2.connect(hostとかの設定)
9
9
  cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
10
10
 
11
- cur.execute("SELECT")
11
+ cur.execute("SELECT カラム1, カラム2, カラム3, カラム4 from test")
12
12
  results = cur.fetchall()
13
13
 
14
14
  dict_result = []
@@ -41,10 +41,14 @@
41
41
    "カラム4:D"
42
42
 
43
43
 
44
+ 実際、printすると以下で表示されています。
45
+ [(‘カラム2’, B), (‘カラム1’, ‘B’), (‘カラム4’, ‘D’)]
46
+
47
+
44
48
  検索をかけているのですがうまくいきません。以下、参考にしているURLです。
45
-  https://note.nkmk.me/python-list-append-extend-insert/
49
+ [https://note.nkmk.me/python-list-append-extend-insert/]
46
-  https://qiita.com/itoufo/items/7306122497fd4f712bff
50
+ [https://qiita.com/itoufo/items/7306122497fd4f712bff]
47
-  https://note.nkmk.me/python-dict-create/
51
+ [https://note.nkmk.me/python-dict-create/]
48
52
 
49
53
  すみませんが、よろしくお願い致します。
50
54