回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在使用GoogleSheetsAPI获取数据,然后将这些数据传递给Pandas,这样我就可以轻松地处理这些数据</p>
<p>假设我想得到一个包含以下数据的工作表(由于这里没有很好地显示表,所以被描述为JSON对象)</p>
<pre><code>{
columns: ['Name', 'Age', 'Tlf.' 'Address'],
data: ['Julie', '35', '12345', '8 Leafy Street']
}
</code></pre>
<p>sheets API将返回以下内容:</p>
<pre><code>{
'range': 'Cases!A1:AE999',
'majorDimension': 'ROWS',
'values':
[
['Name', 'Age', 'Tlf.', 'Address'],
['Julie', '35', '12345', '8 Leafy Street']
]
}
</code></pre>
<p>这很好,让我可以轻松地将列标题和数据传递给Pandas,而无需太多麻烦。我是通过以下方式来做到这一点的:</p>
<pre class="lang-py prettyprint-override"><code>values = sheets_api_result["values"]
df = pd.DataFrame(values[1:], columns=values[0])
</code></pre>
我的问题
<p>如果我有一个类似下表的Gsuite表,它被描述为key:value数据类型</p>
<pre><code>{
columns: ['Name', 'Age', 'Tlf.' 'Address'],
data: ['Julie', '35', '', '']
}
</code></pre>
<p>我将收到以下答复</p>
<pre><code>{
'range': 'Cases!A1:AE999',
'majorDimension': 'ROWS',
'values':
[
['Name', 'Age', 'Tlf.', 'Address'],
['Julie', '35']
]
}
</code></pre>
<p>请注意,这两个数组的长度并不不等,返回的不是<code>None</code>或<code>null</code>值,而是响应中不存在数据</p>
<p>在我的代码中处理这些数据时,我最终会出现如下错误</p>
<pre class="lang-sh prettyprint-override"><code>ValueError: 4 columns passed, passed data had 2 columns
</code></pre>
<p>据我所知,我有两个选择:</p>
<ol>
<li>想出一个聪明的方法,在必要时用<code>None</code>填充我的响应</li>
<li>如果可能,指示API在存在空值的JSON中返回空值,特别是在最后一列完全没有数据的情况下</李>
</ol>
<p>关于第1点。我想我可以将<code>x</code>{<cd1>}值附加到列表中,其中<code>x</code>等于<code>length_of_column_heading_array</code>-<code>length_of_data_array</code>。然而,这看起来确实很丑陋,也许有一种更优雅的方式</p>
<p>关于第二点,我还没有找到一个对我有帮助的答案</p>
<p>如果有人对我如何解决这个问题有任何想法,我将非常感激</p>
<p>干杯</p>