# Create series val, val1, val3 and roll_num
val = np.random.randn(10)
val2 = np.random.randn(10)
val3= np.random.randn(10)
roll_num = np.linspace(start=1001,stop=1010,num=10)
# Create dataframe from above series
df = pd.DataFrame({'val': val, 'val2': val2, 'val3': val3, 'roll_num':roll_num})
df.head(2)
# Plot using iplot() where x-axis now shows student roll number
df.iplot(x='roll_num', y=['val', 'val2', 'val3'], xTitle='Student Roll Number',yTitle='Score',title='Class Scores')
这似乎是Podio PHP SDK或Podio API的错误。 json_response(导致array_merge错误)为null,但是http响应为200。我无法使其定期发生,但是在运行这些调用中的30%的脚本中,它大约发生10%的时间。我可以直接从文档中直接运行GetApp调用。
我知道响应存在错误,因为我的脚本在每次重新运行时都会在不同的位置中断,具体取决于未正确从API加载哪些数据。
测试1:由于$ app1为空,因此在第344行出现了异常
测试2:第814行出现异常,因为$ app3为空
等...
这是一个未经修改的脚本,已经使用了6个月以上,但是上周某个时候停止工作。
编辑:我还确认了cURL会发生相同的错误,因此这不是特定于SDK的问题。
答案 0 :(得分:2)
同样的间歇性错误也发生在我们身上。由于TLS更改已推出。
一种临时的解决方法是将调用包装在do while循环中,以便在出现错误时重试。
例如
// Get item from API
$attempts = 0;
do {
try {
$item = PodioItem::get($itemId);
} catch (\Exception $e) {
$attempts++;
Log::error("PodioItemGetFailure #" . $attempts . ". " . $e->getMessage());
sleep(3);
continue;
}
break;
} while ($attempts < 3);
这有点令人讨厌,所以希望我们能尽快解决Podio方面的问题。
答案 1 :(得分:1)
这种间歇性错误应该不再发生了:)
除非您的网络连接不稳定或不稳定。
无论如何,最好对与网络相关的调用(例如任何Podio API调用)进行适当的处理。我只能建议所有Podio API调用都应通过排队机制,该机制将允许重试,以防网络不稳定或正在维护Podio(例如)。