回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我编写了一个python脚本来验证报表模板。有一个主模板,它包含所有可能的报告及其所有可能的字段。然后有一个csv模板,其中包含一些报告。为了简单起见,让我们这样说吧</p>
<p>模板csv:</p>
<p><code>OutputName, col1, col2, col3, col4, col5
PersonReport, name, surname, age, dob, id
AccountReport, f1, f2, f3, f4, f5
TransactionReport, f1, f2, f3, f4, f5</code></p>
<p>主csv:</p>
<p><code>OutputName, col1, col2, col3, col4, col5
PersonReport, name, surname, street, age, id
TransactionReport, f1, f2, f3, f4, f5</code></p>
<p>所以在这个例子中,<code>AccountReport</code>甚至不存在于主节点中,<code>PersonReport</code>包含一个字段{<cd5>},因为它不在主节点中。唯一有效的报告是<code>TransactionReport</code>。在</p>
<p>所以我的想法是将这些csv作为字典读入,其中<code>OutputName</code>作为键,字段名作为值。在</p>
<pre><code> import pandas as pd
masterDf = pd.read_csv('master.csv')
master = masterDf.set_index('OutputName').T.to_dict('list')
templateDf = pd.read_csv('template.csv')
template = templateDf.set_index('OutputName').T.to_dict('list')
</code></pre>
<p>字典看起来像</p>
<p><code>template = {' PersonReport': [' name', ' surname', ' age', ' dob', ' id'], ' AccountReport': [' f1', ' f2', ' f3', ' f4', ' f5 '], ' TransactionReport': [' f1', ' f2', ' f3', ' f4', ' f5']}</code></p>
<p><code>master = {' PersonReport': [' name', ' surname', ' street', ' age', ' id'], ' TransactionReport': [' f1', ' f2', ' f3', ' f4', ' f5']}</code></p>
<p>现在,我想首先匹配这些键,找出哪些键不存在于主dict中。之后,当查找匹配的键时,我希望通过检查主dict的值中是否存在来检查字典中的值是否有效。在</p>
<p>所以我试着:</p>
^{pr2}$
<p>但是输出是错误的。我得到:</p>
<pre><code>name is an invalid field in PersonReport report
surname is an invalid field in PersonReport report
age is an invalid field in PersonReport report
dob is an invalid field in PersonReport report
dob is an invalid field in PersonReport report
id is an invalid field in PersonReport report
f1 is an invalid field in PersonReport report
f2 is an invalid field in PersonReport report
f3 is an invalid field in PersonReport report
f4 is an invalid field in PersonReport report
f5 is an invalid field in PersonReport report
f5 is an invalid field in PersonReport report
f1 is an invalid field in PersonReport report
f2 is an invalid field in PersonReport report
f3 is an invalid field in PersonReport report
f4 is an invalid field in PersonReport report
f5 is an invalid field in PersonReport report
AccountReport is an invalid report
name is an invalid field in TransactionReport report
surname is an invalid field in TransactionReport report
age is an invalid field in TransactionReport report
dob is an invalid field in TransactionReport report
dob is an invalid field in TransactionReport report
id is an invalid field in TransactionReport report
f1 is an invalid field in TransactionReport report
f2 is an invalid field in TransactionReport report
f3 is an invalid field in TransactionReport report
f4 is an invalid field in TransactionReport report
f5 is an invalid field in TransactionReport report
f5 is an invalid field in TransactionReport report
f1 is an invalid field in TransactionReport report
f2 is an invalid field in TransactionReport report
f3 is an invalid field in TransactionReport report
f4 is an invalid field in TransactionReport report
f5 is an invalid field in TransactionReport report
</code></pre>
<p>我的预期产出将:</p>
<pre><code>AccountReport is an invalid report
dob is an invalid field in PersonReport report
</code></pre>
<p>感谢任何帮助
谢谢
p、 使用python I的6.6 m</p>