質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

takes 1 positional argument but 2 were given

yuujiMotoki
yuujiMotoki

総合スコア83

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

1クリップ

12429閲覧

投稿2020/08/31 10:55

#内容

クラスのコンストラクタで、URLを引数にしてHTMLをパースして、これをDBに入れる処理を書いています。

#不具合

クラスの中から、クラスを呼び出す部分で、引数が合わないというエラーが出ています。

error

File "C:\Users\mm05162\WebApp\patent\dbmodels.py", line 74, in __init__ data = self._url_perse(url) TypeError: _url_perse() takes 1 positional argument but 2 were given

#質問内容

引数の書き方としては、間違ってはいないと認識しています。

メソド定義時は def Function(self,argc) で 2つの引数を定義
内部で呼ぶときは a=self.function(argc)    で 1つの引数で良い

何故かエラーとなり、ここで躓いています。

すみませんが、お知恵を拝借祖せていただきたいと思います。

python

database.py from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session,sessionmaker from sqlalchemy.ext.declarative import declarative_base import os import pdb database_file = os.path.join(os.path.abspath(os.path.dirname(__file__)),'data.db') #SQLITE engine = create_engine('sqlite:///'+database_file,convert_unicode=True,echo=True) db_session = scoped_session( sessionmaker( autocommit=False, autoflush = False, bind =engine ) ) Base = declarative_base() Base.query = db_session.query_property() def init_db(): import patent.dbmodels Base.metadata.create_all(bind=engine)

python

dbmodels.py from sqlalchemy import Column , Integer ,String , Boolean from patent.database import Base import requests import json import pdb from bs4 import BeautifulSoup import pandas as pd import os from pyquery import PyQuery urll = 'https:****************' categories = [("BIJ",1), ("IPC",2), ("FT",3), ("ABJ",4), ("CLJ",5), ("DEJ",6), ("FIELD",7), ("BACKGROUND",8), ("SUBJECT",9), ("MEANS",10), ("OPERATION",11), ("EFFECT",12), ("EDJ",13), ("DRJ",14)] class MapiosMaster(Base): #テーブルの設定 Mapiosマスタ __tablename__ = "Mapios_maseter" #Column情報の設定 patent_number = Column(String,primary_key=True) BIJ = Column(String) # IPC = Column(String) # FT= Column(String) ABJ= Column(String) # CLJ= Column(String) # DEJ= Column(String) # FIELD= Column(String) # BACKGROUND= Column(String) # SUBJECT= Column(String) # MEANS= Column(String) # OPERATION= Column(String) # EFFECT= Column(String) # EDJ= Column(String) # DRJ= Column(String) # def _url_perse(self,url): pq = PyQuery(url) flg = False txt = "" stri = {} num = 0 for x in pq.items('td'): for y in x.items('a'): try: k = y.attr('name') if k in categories.keys() :#'record start' if flg == False: flg = True else: stri[title]=txt txt = "" title = k del categories[k] num = num + 1 except: break if flg == True: txt = txt + x.text() return stri def __init__(self,url=None,patent_number=None): data = self._url_perse(url) self.patent_number= patent_number self.BIJ= data["BIJ"] self.IPC= data["IPC"] self.FT= data["FT"] self.ABJ= data["ABJ"] self.CLJ= data["CLJ"] self.DEJ= data["DEJ"] self.FIELD= data["FIELD"] self.BACKGROUND= data["BACKGROUND"] self.SUBJECT= data["SUBJECT"] self.MEANS= data["MEANS"] self.OPERATION= data["OPERATION"] self.EFFECT= data["EFFECT"] self.EDJ= data["EDJ"] self.DRJ= data["DRJ"]

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。