r
要素として 12 個のリストを含むリストがあります。各リストには、他のリストと同じいくつかの要素 ( i[0]
~ ) が含まれています。i[5]
一意のドキュメントのみを挿入しようとしたため、DB に 5 つのドキュメントを取得する必要があります。i[6]
ドキュメントが既に存在する場合は、とを に追加i[7]
しますchr
。
import couchdb
# $ sudo systemctl start couchdb
# http://localhost:5984/_utils/
server = couchdb.Server()
try:
db = server.create("test")
except couchdb.http.ResourceConflict:
db = server["test"]
r = [["Test", "A", "B01", 828288, 1, 7, 'C', 5],
["Test", "A", "B01", 828288, 1, 7, 'T', 6],
["Test", "A", "B01", 171878, 3, 8, 'C', 5],
["Test", "A", "B01", 171878, 3, 8, 'T', 6],
["Test", "A", "B01", 871963, 3, 9, 'A', 5],
["Test", "A", "B01", 871963, 3, 9, 'G', 6],
["Test", "A", "B01", 1932523, 1, 10, 'T', 4],
["Test", "A", "B01", 1932523, 1, 10, 'A', 5],
["Test", "A", "B01", 1932523, 1, 10, 'X', 6],
["Test", "A", "B01", 667214, 1, 14, 'T', 4],
["Test", "A", "B01", 667214, 1, 14, 'G', 5],
["Test", "A", "B01", 667214, 1, 14, 'G', 6]]
_id = None
for i in r:
_id = str(i[5])
doc = {
'type': i[0],
'name': i[1],
'sub_name': i[2],
'pos': i[3],
's_type': i[4],
'_id': _id,
'chr':[]
}
doc['chr'].append({
"letter":i[6],
"no":i[7]
})
a = db.save(doc)
UPDATE
の最初の 2 つのリストにr
は、同じフィールド ( i[0]
~i[5]
) が含まれています。2 つのリストの最終的なドキュメントは次のようになります。
{
"_id": "7",
"_rev": "1-bc0b4e6f3aa855a486225f4a0dcd76c8",
"sub_name": "B01",
"name": "A",
"pos": 828288,
"s_type": 1,
"chr": [
{
"letter": "C",
"no": 5
},
{
"letter": "T",
"no": 6
}
],
"type": "Test"
}
ドキュメントを更新してリストに辞書を追加するにはどうすればよいですか?