回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个字典列表,字典里有一个列表</p>
<pre><code>{
"Credentials": [
{
"realName": "Mark Toga",
"toolsOut": [
"TL-482940",
"TL-482940"
],
"username": "291F"
},
{
"realName": "Burt Mader",
"toolsOut": [],
"username": "R114"
},
{
"realName": "Tim Johnson",
"toolsOut": [
"TL-482940"
],
"username": "E188"
}
]
}
</code></pre>
<p>我正在尝试解析此文件,以便它显示如下内容:</p>
<p>马克·托加:TL-482940,TL482940
蒂姆·约翰逊:TL-482940</p>
<p>因为伯特·马德没有工具,所以他要找他</p>
<p>我有一个点,它显示了上面的Burt Mader still(<a href="https://i.stack.imgur.com/7Zge5.png" rel="nofollow noreferrer">GUI output</a>)</p>
<p>编辑:这里是newstr6的打印输出,而不是GUI图像。我确实希望我的应用程序使用GUI,但为了便于阅读:</p>
<pre><code>Mark Toga: 'TL-482940', 'TL-482940',
Burt Mader: ,
Tim Johnson: 'TL-482940'
</code></pre>
<p>这是我当前的代码(我确信有很多效率上的改进,但我最关心的是用空列表来匹配字典。)</p>
<pre><code>## importing libraries
import json
from tkinter import *
from tkinter import ttk
from functools import partial
import pprint
mainWin = Tk()
mainWin.geometry('400x480')
mainWin.title('Select Tooling')
with open('Inventory.json','r+') as json_file:
data=json.load(json_file)
credData = data['Credentials']
noSID = [{k: v for k, v in d.items() if k != 'username'} for d in credData]
print(noSID)
pp = pprint.pformat(noSID)
ps = str(pp)
newstr1 = ps.replace('[','')
newstr2 = newstr1.replace(']','')
newstr3 = newstr2.replace('{','')
newstr4 = newstr3.replace('}','')
newstr5 = newstr4.replace("'realName': '","")
newstr6 = newstr5.replace("', 'toolsOut'","")
text = Label(mainWin,text=newstr6)
text.pack()
quitButton = Button(mainWin,text="Log Out",command=lambda:mainWin.destroy())
quitButton.pack()
mainWin.mainloop()
</code></pre>