我不明白我在这里做错了什么。
这是我的数据:
clientSelect : Long Company Name Inc.
server1Info : Server1
server1Pic : 200330135637030000.jpg
server2Info : Server2
server2Pic : 200330140821800000.jpg
modemInfo : Aries
modemPic : 200330140830497000.jpg
routerInfo : Router
routerPic : 200330140842144000.jpg
switchInfo : Switch1
switchGallery_media : 200330140859161000.jpg
buttonSubmit : Submit
::end::
这当前位于字符串中。它是通过以下方式从共享点提取的
lines = folder.get_file('main_equipment_list.txt')
lines = lines.replace(",", "")
for row in lines.split(","):
这里有些东西要分裂。
有位置行是处理一些信息中的一些逗号,这些信息不应该在拆分之前存在。
一切都很好,直到它分裂,然后我无法从那里把它变成一个字典。
我试过
d = dict(s.split(':') for s in lines)
print d
这让我很感动
File "testShare.py", line 24, in <module>
d = dict(s.split(':') for s in row)
ValueError: dictionary update sequence element #0 has length 1; 2 is required
所以想要的是把它变成一个字典。
如果我这样做:
for row in lines.split(","):
print(row)
我得到:
clientSelect : Long Company Name Inc.
server1Info : Server1
server1Pic : 200330135637030000.jpg
server2Info : Server2
server2Pic : 200330140821800000.jpg
modemInfo : Aries
modemPic : 200330140830497000.jpg
routerInfo : Router
routerPic : 200330140842144000.jpg
switchInfo : Switch1
switchGallery_media : 200330140859161000.jpg
buttonSubmit : Submit
::end::
但是如果我这样做:
for row in lines.split(","):
# print(row)
for s in row:
print(s[0])
我在每行上都有一个字符。如果我这样做:
for row in lines.split(","):
# print(row)
for s in row:
print(s[1])
我得到一个超出范围的错误。
编辑:
我回去重新开始。一切都很好,直到我尝试拆分行。这是有效的方法。
lines = folder.get_file('main_equipment_list.txt')
lines = lines.rsplit("\n",2)[0]
d = {}
for line in lines.split("\n"):
if line.strip():
try:
k, v = map(str.strip, line.split(":"))
d[k] = v
except ValueError as ex:
print("on line" % (ex, line))
pass
print(d)
我认为出错的是多件事。主要是我对python的不熟悉,以及空格/额外的字符把我搞砸了
我得到:
['switchGallery_media ', ' 200330140859161000.jpg\r']
无论哪种方式,它都有效,我更好地理解了一些事情。感谢您@RoadRunner提供有关显示错误的帮助和提示。
POPMUISE
绝地无双
相关分类