我有两个文本文件,我希望使用Pandas。除了内部的一些内容之外,文件以完全相同的方式创建并且非常相似。但是,我的程序不能与其中一个文本文件一起使用,但可以与另一个一起使用。这是我的错误:
public function actionLocating()
{
$searchModel = new ViewMachinesSearch();
$dataProvider1 = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider1->pagination = false;
$model = new TrackingForm();
if (Yii::$app->request->post()){
$model->machine_select = Yii::$app->request->post('keylist');
$machines = $model->machine_select;
}else{
$machines = $model->getMachines();
}
if(!in_array(Yii::$app->user->identity->company_id, Yii::$app->CompaniesByUser->getCompaniesByUser(21))){
$query = New Query;
$query ->select(['licenceplate', 'identifier', 'timestamp', 'lat', 'lng'])
->from('gps_live')
->where(['machine_id' => $machines])
->orderBy(['timestamp' => SORT_DESC]);
}else{
$subquery = New Query;
$subquery ->select(['licenceplate', 'identifier', 'timestamp', 'lat', 'lng'])
->from('btc_m1_v1_1')
->join('INNER JOIN', 'machine', 'machine.id_machine = machine_id')
->where(['machine_id' => $machines])
->andWhere('lat <> 0')
->andWhere('lng <> 0')
->orderBy(['timestamp' => SORT_DESC]);
$query = New Query;
$query ->from(['sub' => $subquery])
->groupBy(['sub.licenceplate'])
->all();
}
$dataProvider = new ActiveDataProvider(['query'=>$query, 'pagination'=>false]);
return $this->render('locating', [
'model' => $model,
'searchModel' => $searchModel,
'dataProvider1' => $dataProvider1,
'dataProvider' => $dataProvider,
]);
}
这是我的代码:
Traceback (most recent call last):
File "E:\Holiday Project\Politic\store.py", line 19, in <module>
tweets['text'] = list(map(lambda tweet: tweet['text'], tweets_data))
File "E:\Holiday Project\Politic\store.py", line 19, in <lambda>
tweets['text'] = list(map(lambda tweet: tweet['text'], tweets_data))
KeyError: 'text'
答案 0 :(得分:2)
看看以下几行:
tweets = pd.DataFrame()
tweets['text'] = list(map(lambda tweet: tweet['text'], tweets_data))
您可能尝试提取某些词典中不存在的 tweet ['text'] 。如果“text”字段仅存在于您正在加载的某些行中,那么您可能希望编写类似的内容:
tweets = pd.DataFrame()
tweets['text'] = [tweet.get('text','') for tweet in tweets_data]
tweets['lang'] = [tweet.get('lang','') for tweet in tweets_data]
#and so on...
如果出于某种原因,在某些jsons“text”中不存在,那么你将在DataFrame中得到'。
答案 1 :(得分:1)
tweet ['text']似乎不存在。当您尝试访问不存在的哈希映射/字典中的密钥时,会生成密钥错误。例如
myDict = {"hello": 1, "there": 2}
print myDict["hello"] #this prints 1
print myDict["friend"] #this will generate a key error because it does not exist
答案 2 :(得分:0)
您应该添加与上一类别相同的条件,以跳过“无文字”案例。