昨日私は暗号化市場向けの簡単なアナウンスボットを書き始めました。 この時点で私はティッカー(市場の価格)を読んで、リアルタイムで.jsonファイルにデータを保存したいと思います。 Pythonのdump
関数がこのトリックを行います。これまでのコードは、この
start = time.time()
while 1:
end = time.time()
raz = end - start
if raz >= 5:
for i in range(len(self.keys)):
self.dictTicker(self.values[i])
start = end
sleep(0.005)
self.dictTicker
のように見えることは選択された市場を経由し、.jsonファイル.jsonファイルの例は、このようになります
def dictTicker(self, market):
ticker = api.get_ticker(market)
self.data['year'] = datetime.now().year
self.data['month'] = datetime.now().month
self.data['day'] = datetime.now().day
self.data['hour'] = datetime.now().hour
self.data['min'] = datetime.now().minute
self.data['sec'] = datetime.now().second
self.data['bid'] = ticker['result']['Bid']
self.data['ask'] = ticker['result']['Ask']
self.data['last'] = ticker['result']['Last']
with open("{}.json".format(market), 'a') as f:
json.dump([self.data], f)
f.close()
にデータを保存する機能です。
{"year": 2017, "month": 8, "day": 6, "hour": 6, "min": 38, "sec": 4, "bid": 0.00224, "ask": 0.00225999, "last": 0.00225999}{"year": 2017, "month": 8, "day": 6, "hour": 6, "min": 38, "sec": 9, "bid": 0.00223611, "ask": 0.00224, "last": 0.00224}
問題は、このフォーマット{}{}
が間違っていることです。それは{{}{}}
でなければなりません。つまり、辞書のリストであり、複数の辞書ではありません。
私は、次のコードを使用するファイルの読み取りしようとすると:
json.decoder.JSONDecodeError: Extra data: line 1 column 121 (char 120)
私は、スタック上で検索しましたが、私はだろう答えを見つけるカント:私は次のエラーを取得する
with open("BTC-SEC.json") as f:
a = json.load(f)
print(a)
を助けて。どんな助けでも大歓迎です。
' {{}、{}} 'は辞書のリスト(辞書の辞書)ではなく、[{}、{}]'は辞書のリストです。 – abagshaw
リストに追加してから、常にJSONとして完全なリストをファイルに書き込みます。 –