【发布时间】:2012-02-23 03:44:30
【问题描述】:
昨天有人帮助我解决了一个问题,Lost in XML and Python 我正在尝试比较两个字符串。
- 字符串一是从 XML 文件中读取的
- 字符串二是从 CSV 文件中读取的
问题在于两者的存储方式不同:
CSV FILE HAS : "‚"
XML FILE HAS : "‚"
但没有“
在比较时打印字符串告诉我为什么它们不匹配:
这些是它试图匹配的字符串
FROM XML : ‚
FROM CSV : x82
这可能会发生在比这个特定角色更多的角色身上。我的问题是如何解决这个问题?
- 以不同的方式读取 XML 文件?
- 以不同的方式读取 CSV 文件?
- 在比较之前转换存储的字符串?
比较后,匹配的字符串需要以XML中字符串的格式存储并打印回来。
这是我在 csv 文件中打开和阅读的方式:
import csv
csvdata = csv.reader(open('csvsmall.csv'))
csvfile = open(csvinput, "rb")
dialect = csv.Sniffer().sniff(csvfile.read(1024))
csvfile.seek(0)
reader = csv.reader(csvfile, dialect)
=============================更新================== ============================
好的,根据回复。我认为最容易找到一种方法将 CSV 文件中的转义字符串转换为 XML 文件中的版本
这意味着转换:
"," which looks like it is being read as x82 to "‚"
是否有人对如何对存储在字典中的所有 csv 值执行此操作有任何提示? :
filenameToLabel = {}
for l,f in (x.strip().split(';') for x in (csvfile.readlines())[1:]):
filenameToLabel[f] = l
【问题讨论】:
标签: python xml csv character-encoding