数组中的值很好。如果我在一个循环中单独打印出来,它们应该按照它们的形式出现,但是当我把它们放在一起时,它不打印前两个值并且混淆其余的值。这是打印片段:
print '['
for i in range(1, x):
print '{\"' + fNames[0] + '\":"' + fNames[i] + '\", \"' + lNames[0] + '\":\"' + lNames[i] + '\", \"' + descs[0] + '\":\"' + descs[i] + '\"},\r'
print ']'
这是它输出的内容:
[
"},A really cool guy, "lname":"Bishop", "description
"},A really cool galname":"Patzer", "description
"},A really cool momlname":"Robertson", "description
"},A really cool dadame":"Bishop", "description
"},A really cool doglname":"Bishop", "description
"},A really cool cat"lname":"Jack", "description
]
请注意,它不输出fName [0]和fName [i]。
如果我像这样注释掉print语句的结尾:
print '['
for i in range(1, x):
print '{\"' + fNames[0] + '\":"' + fNames[i] + '\", \"' + lNames[0] + '\":\"' + lNames[i] + '\", \"' + descs[0] + '\":\"' #+ descs[i] + '\"},'
print ']'
除了“fname”中的'f'之外,它正确打印出大部分内容,并注意到它不会打印出最后一个'\“:\”'。我已经通过filter()函数运行数组来去除换行符,并确保我的正则表达式不会接收它们。这就是我填充数组的方式:
with open(file, "rb") as fin:
for line in fin:
col1Reg = re.search('^(.+?)(?=,)', line)
fNames.append(col1Reg.group(0))
col2Parsed = '(?<=' + fNames[x] + ',)(.*)(?=,)'
col2Reg = re.search(col2Parsed, line)
lNames.append(col2Reg.group(0))
col3Parsed = '(?<=' + lNames[x] + ',)(.*)(?=\n)'
col3Reg = re.search(col3Parsed, line)
descs.append(col3Reg.group(0))
x += 1
到底发生了什么事?数组中的所有内容都是正确的并且处于正确的位置,为什么会发生这种情况呢?
答案 0 :(得分:1)
看起来你正在尝试输出json。而不是构建一个字符串,为什么不创建一个字典列表并通过类似的东西将其转储到json:
import json
list1 = []
for x in range(i):
list1.append({
'name': 'value',
})
print json.dumps(list1, indent=4)