Python超初心者です.
卒業研究のために論文のデータベースを扱うのですが,論文ごとに著者が複数人いる論文を著者一人ごとに行で分けたいと考えています.
現在は著者がカンマ区切りになっている状態で,その処理を行ったコードは以下の通りです.
python__イタリックテキスト__
1..... 2with MySQLdb.connect(**args) as cur: 3 cur.execute("SELECT * FROM papers limit 100;") 4 result = cur.fetchall() 5 6 papers = [] 7 for row in result: 8 authors = row[2].split(',') 9 ano = 0 10 for aname in authors: # anameは著者名 11 ano += 1 # anoは著者番号 12 papers.append([row[0], row[1], row[2], str(ano), aname, row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21], row[22], row[23], row[24], row[25]]) 13 print(papers)
例えば,
論文名 | 著者 |
---|---|
論文A | 著者1,著者2 |
となっているデータを,
論文名 | 著者 |
---|---|
論文A | 著者1 |
論文A | 著者2 |
といったようにしたいと考えています.
色々検索してみましたがわからなかったので,こういった加工をしたい場合はどのようなコードを書けばよいか教えていただきたいです.
すみません。サンプルコードの各変数の意味をコメント等で追記してもらえないでしょうか。(j, aut, ano等、推測が難しいものがあり、質問主さんの意図が読み切れませんでした。。。)
resultにはどのようなデータが入っていて、処理の結果、 print(papers)はどのような出力が欲しいのかを追記ください。
コメントありがとうございます.result に論文のメタデータ(著者名はカンマ区切りになったもの)が入っています.本来出力としてはカンマ区切りにしたものを著者ごとに一行一行分けられたものが欲しいと考えています.
追記・修正ありがとうございます。具体データ例が今一つ把握できていないかもですが回答しました
回答1件
あなたの回答
tips
プレビュー