我正在使用websockets进行多人游戏,我需要在服务器上发送多种类型的数据,但是当我连接到服务器时,它应该分别发回一个名称和号码("类型")和("数据")来自连接上的websocket库.我不需要类型,但("数据")对于游戏逻辑实际工作至关重要.
下面是我的websockets onMessage()函数中的代码:
@Override
public void onMessage(String message)
{
try
{
JSONObject json = new JSONObject(message);
if(json.has("type") && json.has("data"))
{
Log.d(TAG, json.getString("type"));
Log.d(TAG, json.getString("data"));
playerNum = Integer.parseInt(json.getString("data"));
Log.d(TAG,"Received... Type : " +json.getString("type")+" Data : "+json.getString("data"));
}
if(json.has("Player1TurnOver"))
{
player1TurnOver = json.getBoolean("Player1TurnOver");
}
if(json.has("Word"))
{
String b = json.getString("Word");
bWord = new char[b.length()];
for(int i = 0; i < b.length(); i++)
{
bWord[i] = b.charAt(i);
}
wordLength = bWord.length;
}
}
catch(JSONException e)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但是,即使客户端有一个监听器,也不会从服务器调用它:
mClient = new WebSocketClient(URI.create("ws://some_ip:8080/wstest"), …Run Code Online (Sandbox Code Playgroud) 我正在尝试订购一个只有300多个条目的.csv文件,然后将它全部输出,按照方言下一个特定列中的数值排序.这是我到目前为止编写的代码,但它似乎只是在输入时输出数据
import csv
import itertools
from itertools import groupby as gb
reader = csv.DictReader(open('Full_List.csv', 'r'))
groups = gb(reader, lambda d: d['red label'])
result = [max(g, key=lambda d: d['red label']) for k, g in groups]
writer = csv.DictWriter(open('output.csv', 'w'), reader.fieldnames)
writer.writeheader()
writer.writerows(result)
Run Code Online (Sandbox Code Playgroud)
整个文件中只有50行包含方言"红色标签"下的值,所有其他行都留空.它位于.csv的Z列中(但不是最后一列)所以我假设列的索引是25(0是第一个).任何帮助将不胜感激.