JSONオブジェクトを作成してリストに追加しようとしていますが、成功しません。次のコードは、私が見逃してやったPythonでJSONオブジェクトを作成する
def read_relationship(filename):
data = []
with open(filename) as f:
f.next()
for line in f:
try:
parts = line.rstrip().split('\t')
query_name = parts[0]
subject_name = parts[1]
query_start = parts[2]
query_end = parts[3]
subject_start = parts[4]
subject_end = parts[5]
# I need: [source: {id: 'Locus_1', start: 1, end: 1054}, target: {id: 'tig00007234', start: 140511, end: 137383}],
tmp = ("[source: {id: '{}',start: {},end: {}},target: {id: '{}',start: {}, end: {}}],").format(parts[0],parts[2],parts[3],parts[1],parts[4],parts[5])
data.append(tmp)
except ValueError:
pass
with open('data/data.txt', 'w') as outfile:
json.dump(data, outfile)
read_relationship('data/chr03_small_n10.blast')
と
Traceback (most recent call last):
File "/projects/circos/test.py", line 32, in <module>
read_relationship('data/chr03_small_n10.blast')
File "/projects/circos/test.py", line 20, in read_relationship
tmp = ("[source: {id: '{}',start: {},end: {}},target: {id: '{}',start: {}, end: {}}],").format(parts[0],parts[2],parts[3],parts[1],parts[4],parts[5])
KeyError: 'id'
: 私は、このエラーのマッサージを得ましたか。
はJSON文書の一部であるべきということですが?これは、不透明な文字列値としてダンプされるためです。それはこれまで有効なJSONと見なすことはできませんでした。 –