3

リストをファイルに書き込み、ファイルの内容をリストに読み返したいと思います。次のように、simplejson を使用してリストをファイルに書き込むことができます。

f = open("data.txt","w")
l = ["a","b","c"]
simplejson.dump(l,f)
f.close()

ファイルを読み返すには

file_contents = simplejson.load(f)

しかし、file_contents は json 形式だと思います。それをリストに変換する方法はありますか?

ありがとうございました。

4

2 に答える 2

6
with open("data.txt") as f:
  filecontents = simplejson.load(f)

実際、指定したとおりにデータをリロードしています。混乱を招く可能性があるのは、JSON のすべての文字列が常にUnicode であることです。JSON (Javascript など) には、「unicode」とは異なる「バイト文字列」データ型がありません。

編集私はもう古いものを持っていませんsimplejson(その現在のバージョンは標準の Python ライブラリ as の一部になっているためjson) が、これがどのように機能するか (混乱を避けるためにjsonマスカレード asを作成します!-)...:simplejson

>>> import json
>>> simplejson = json
>>> f = open("data.txt","w")
>>> l = ["a","b","c"]
>>> simplejson.dump(l,f)
>>> f.close()
>>> with open("data.txt") as f: fc = simplejson.load(f)
... 
>>> fc
[u'a', u'b', u'c']
>>> fc.append("d")
>>> fc
[u'a', u'b', u'c', 'd']
>>> 

この正確なコード (代わりに行うことはimport simplejsonもちろん、最初の 2 行のネット;-) が観察したものと一致しない場合は、バグが見つかったので、Python のバージョンを報告することが重要simplejsonです。使用して正確にどのようなエラーが発生し、トレースバックを完了します(Qを編集してこれを追加します-明らかに重要です-情報!)。

于 2010-08-10T00:03:38.973 に答える