gpt4 book ai didi

python - 使用 % 字符串格式时出现值错误,不支持格式字符 '"'

转载 作者:行者123 更新时间:2023-12-01 04:20:22 25 4
gpt4 key购买 nike

我正在尝试使用字符串格式将传入的 CSV 转换为 XML。我收到以下错误:

ValueError: unsupported format character '"' (0x22) at index 36

我知道我在不应该使用的地方使用了“,但找不到它在哪里。模板内的”应该全部封装在“””...“””内,我可以'在脚本的其他地方看不到任何内容。

有人可以建议我哪里出了问题吗?

import csv
import sys


def csvDict(csvRow):
dict = {'Name': csvRow[0], 'p1t': csvRow[1], 'p1l': csvRow[2], 'p2t': csvRow[3], 'p2l': csvRow[4],
'outputWidth': csvRow[5], 'sourceTop': csvRow[6], 'sourceLeft': csvRow[7], 'sourceWidth': csvRow[8],
'sourceHeight': csvRow[9]}
return dict


# Get CSV File from the argument
csvFile = csv.reader(open(sys.argv[1], 'rt'))

# Convert CSV Into list for Processing
csvList = list(csvFile)

# Setup XML Variables Dictionary
outputVars = csvDict(csvList[0])

# Confirm Dictionary contains the right data
print outputVars


# XML Format Template
mapTemplate = """<map type="map2dpanel" name="%(Name)" width="%(outputWidth)" >
<point id="1" top="%(p1t)" left="%(p1l)" /><point id="2" top="%(p2t)" left="%(p2l)" />
<source image="current source" top="%(sourceTop)" left="%(sourceLeft)" width="%(sourceWidth)" height="%(sourceHeight)" />
</map>
"""

print mapTemplate % outputVars

最佳答案

您忘记指定占位符的类型。 Python 需要 %(name)s%(name)dany of the other supported types .

相反,Python 发现 " 是下一个字符,这不是有效的格式字符:

name="%(Name)"
# -------^

由于您正在从 CSV 文件中读取值,因此它们都是字符串;将 s 字符添加到模板占位符中:

mapTemplate = """\
<map type="map2dpanel" name="%(Name)s" width="%(outputWidth)s" >
<point id="1" top="%(p1t)s" left="%(p1l)s" /><point id="2" top="%(p2t)s" left="%(p2l)s" />
<source image="current source" top="%(sourceTop)s" left="%(sourceLeft)s" width="%(sourceWidth)s" height="%(sourceHeight)s" />
</map>
"""

关于python - 使用 % 字符串格式时出现值错误,不支持格式字符 '"',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com