表題の件で質問させてください
windowsで開発を進めています
sqlalchemyを使ってpostgresqlとやり取りを行っています
データベースのあるテーブルのvalue列から”今日の天気は晴れ”、”昨日の天気は雨”という文字列を取得し、その文字列を単語区切りしています(変数:data)
その単語で区切ったデータに対し同じ単語がいくつあったか、という情報を ”#単語区切りにしたデータの重複している個数を数える”部分のコードで辞書オブジェクトの型で取得しています
このデータ(変数:counter)を取得してきたテーブルとは別のテーブルの"A"という列には単語を(KEY)、"B"という列にはデータの重複している個数(区切った単語に関連付いているVALUE)をINSERTしたいのですがどのような記述をすれば良いか調べても見つけられず悩んでいます
天気は:2
というデータがあると
A列 B列
天気 2
というようにdictionaryの関係でINSERTしたいです
分かりにくい質問で申し訳ありませんがアドバイスよろしくお願いいたします
python
1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3from sqlalchemy import create_engine,Column,Integer,Text 4from sqlalchemy.orm import sessionmaker 5from sqlalchemy.ext.declaretive import declarative_base 6from functional import seq 7from janome.tokenizer import Tokenizer 8from collections import Counter 9 10Base = declarative_base() 11class PythonTest(Base): 12 __tablename__ = 'Python_test' 13 id = Column(Integer,primary_key = True) 14 value = column(Text) 15 16if __name__ == '__main__': 17 engine = create_engine('postgresql://postgres:postgres@localhost/Datatest') 18 session = sessionmaker(bind = engine) 19 sess = Session() 20 21 pages = sess.query(PythonTest).all() 22 ids = seq(pages).map(lamda x: x.value).to_list() 23 print(ids) 24 25 data = [] 26 27#DBから取得したデータを単語区切りにする 28 t = Tokenizer() 29 tokens = t.tokenize(ids) 30 for text in ids: 31 for token in t.tokenize(text): 32 data.append(token.surface) 33 print(data) 34 35#単語区切りにしたデータの重複している個数を数える 36 countdata = data 37 counter = Counter(countdata) 38 counter.most_common() 39 40#重複データ除く 41 wordlist = [] 42 for word in data: 43 if words not in wordlist: 44 wordlist.append(word) 45 46class insertword(BASE): 47 __tablename__ = 'insertdata' 48 word = Column(Text,primary_key = True) 49 count = column(Integer) 50 51if __name__ == '__main__': 52 insertdt = insertword() 53 insertdt.word = #INSERTする部分がわかりません 54 sess.add(insertdt) 55 sess.commit() 56 57 58

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。