[英]Probleme with JSON generation in Python
我在這里是因為我嘗試用 python 生成一個正確的 JSON 文件,但實際上我被卡住了。
我的問題是下一個:
我從 Google 表格中獲取數據,並將它們存儲在名為“teams_”的 Python 字典中,您可以在我的代碼的下一部分中看到。
teams_ = {}
nbTeam = 0
for row in values:
teams_[nbTeam] = {"NAME":"{}".format(row[1]),
"PLAYERS" : [
"{}".format(row[2]),
"{}".format(row[3])
]
}
nbTeam = nbTeam +1
print(teams_)
結果是下一個
{
0: {'NAME': 'A', 'PLAYERS': ['AA1', 'AA2']},
1: {'NAME': 'B', 'PLAYERS': ['BB1', 'BB2']},
2: {'NAME': 'C', 'PLAYERS': ['CC1', 'CC2']},
3: {'NAME': 'D', 'PLAYERS': ['DD1', 'DD2']},
4: {'NAME': 'E', 'PLAYERS': ['EE1', 'EE2']},
5: {'NAME': 'F', 'PLAYERS': ['FF1', 'FF2']},
6: {'NAME': 'G', 'PLAYERS': ['GG1', 'GG2']},
7: {'NAME': 'H', 'PLAYERS': ['HH1', 'HH2']}
}
現在如果我想把它放在一個 JSON 文件中,我首先嘗試了這個解決方案
j = {"TEAM" : [ teams_ ]}
datas.write(json.dumps(j, indent=4))
這做了類似的事情:
{
"TEAM": [
{
"0": {
"NAME": "A",
"PLAYERS": [
"AA1",
"AA2"
]
},
"1": {
"NAME": "B",
"PLAYERS": [
"BB1",
"BB2"
]
},
"2": {
"NAME": "C",
"PLAYERS": [
"CC1",
"CC2"
]
},
"3": {
"NAME": "D",
"PLAYERS": [
"DD1",
"DD2"
]
},
"4": {
"NAME": "E",
"PLAYERS": [
"EE1",
"EE2"
]
},
"5": {
"NAME": "F",
"PLAYERS": [
"FF1",
"FF2"
]
},
"6": {
"NAME": "G",
"PLAYERS": [
"GG1",
"GG2"
]
},
"7": {
"NAME": "H",
"PLAYERS": [
"HH1",
"HH2"
]
}
}
]
}
所以我嘗試了另一種方式:
j = {"TEAM" : [ teams_[0], teams_[1], teams_[2],teams_[3], teams_[4], teams_[5],teams_[6], teams_[7] ]}
datas.write(json.dumps(j, indent=4))
這對輸出效果很好:
{
"TEAM": [
{
"NAME": "A",
"PLAYERS": [
"AA1",
"AA2"
]
},
{
"NAME": "B",
"PLAYERS": [
"BB1",
"BB2"
]
},
{
"NAME": "C",
"PLAYERS": [
"CC1",
"CC2"
]
},
{
"NAME": "D",
"PLAYERS": [
"DD1",
"DD2"
]
},
{
"NAME": "E",
"PLAYERS": [
"EE1",
"EE2"
]
},
{
"NAME": "F",
"PLAYERS": [
"FF1",
"FF2"
]
},
{
"NAME": "G",
"PLAYERS": [
"GG1",
"GG2"
]
},
{
"NAME": "H",
"PLAYERS": [
"HH1",
"HH2"
]
}
]
}
但是如果我有 12 個或 100 個團隊呢? 所以我正在尋找一種更好的方法來做到這一點,這就是我被卡住的地方。 有誰知道任何方法可以“自動”做到這一點?
感謝您的時間 !
使用您的teams_
字典中的.values()
作為列表,然后應該可以使用。 所以嘗試:
j = {"TEAM" : list(teams_.values())}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.