我想創建模擬器,將JSON格式數據添加到txt文件,直到我將其關閉。 應的數據看起來像這樣:Python,JSON - 寫數據模擬
{user : [
{
"ID" : "12"
"button" : "red"
},
{
"ID" : "11"
"button" : "red"
}]
}
這是我編:
import json
import random
import time
buttons = ['red', 'green', 'blue', 'yellow']
IDs = ['11', '12', '13', '14', '26', '51', '112', '3']
data = {}
data['user'] = []
data['user'].append({
'ID': random.choice(IDs),
'button': random.choice(buttons)
})
with open('data.txt', 'w') as outfile:
while True:
data = {}
data['user'] = []
data['user'].append({
'ID': random.choice(IDs),
'button': random.choice(buttons)
})
json.dump(data, outfile)
time.sleep(1)
第一個問題:文件的data.txt是空的,當我停止程序, 第二:數據JSON不看起來像我寫之前,但看起來像這樣:
{user : [
{
"ID" : "12"
"button" : "red"
}],
{user : [
{
"ID" : "11"
"button" : "red"
}]
}
我只想要一個標記用戶。
謝謝。
編輯: 也許這會更容易,如果我解釋它是什麼。它的模擬投票,通常投票開始時,人們按下一些選項按鈕,有能力改變主意,然後按不同的按鈕,但當投票停止時,人們仍然可以按下按鈕,json文件中的數據更新,但數據庫只會在投票停止前進行選擇。
我希望這會更容易理解我想要做什麼。也許我的想法是錯誤的,我應該考慮一些不同的事情,因爲它太複雜了。在JSON
你真的想一個接一個地添加元素到文件嗎?如果你想要輸出你需要的,你必須在內存中創建整個對象(一個大字典),然後將其寫入磁盤。 –