我为虚拟问题道歉,但我遇到了一个奇怪的问题,一个简单的脚本似乎是正确的,但没有按预期工作
#!/usr/bin/python
import json,sys
obj=json.load(sys.stdin)
oem=obj["_id"]
models = obj.get("modelli", 0)
if models != 0:
for marca in obj["modelli"]:
brand=obj["modelli"][marca]
for serie in brand:
ser=brand[serie]
for modello in ser:
model=modello
marca = marca.strip()
modello = modello.strip()
serie = serie.strip()
print oem,";",marca,";",serie,";",modello
它应该只是从一个json var循环一个数组并以csv格式打印输出,但是我仍然得到在每个变量(oem,marca,serie,modello)的开头和结尾处包含一个withespace的字符串此
KD-CH884 ; Dell ; ; 966
这是我在python中的第一个脚本,我只是遵循一些简单的指令,所以我错过了什么或什么? 有什么猜测吗?
答案 0 :(得分:3)
答案 1 :(得分:1)
Python实际上剥离了空白。它只是印刷声明:
print oem,";",marca,";",serie,";",modello
..即重新引入空间。尝试连接变量并显示它们。
答案 2 :(得分:0)
试试这个:
print "%s;%s;%s;%s" % (oem,marca,serie,modello)
或
print ";".join([oem,marca,serie,modello])
答案 3 :(得分:0)
';'.join(filter(None, [oem, marca, serie, modello]))
它只会在两个现有字符串之间放置分号。如果变量在被剥离后保留空字符串,则过滤None将使其脱离列表。