Я был бы более склонен сначала конкатенацию кадров данных, а затем превратить этот фреймворк в формат excel. Чтобы поместить два кадра данных вместе бок о бок (в отличие от одного над другим), выполните следующее:
writer = pd.ExcelWriter('test.xlsx',engine='xlsxwriter') # Creating Excel Writer Object from Pandas
workbook=writer.book
df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)
new_df = pd.concat([df, another_df], axis=1)
new_df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)
Легкий способ сделать это без аннотаций - использовать библиотеку Gson
. Просто:
Gson gson = new Gson();
String json = gson.toJson(listaDePontos);
Вы делаете http-запрос
blockquote>HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); inputStream = entity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8); StringBuilder sb = new StringBuilder();
Вы читаете Buffer
blockquote>String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } Log.d("Result", sb.toString()); result = sb.toString();
Create JSONObject и передать строку результата в конструктор:
blockquote>JSONObject json = new JSONObject(result);
Разделите результаты json на нужные вам переменные:
blockquote>String usuario= json.getString("usuario"); int idperon = json.getInt("idperson"); String nombre = json.getString("nombre");
Не забудьте импортировать:
import org.json.JSONObject;
GSON прост в использовании и имеет относительно небольшой объем памяти. Если вы заметите, что у вас еще меньше занимаемой площади, вы можете захватить:
https://github.com/ko5tik/jsonserializer
Которая является крошечной оберткой вокруг разделили библиотеки GSON только для POJO
«Ссылка» Java-реализация Шона Лири здесь на github . Убедитесь, что у вас установлена последняя версия - разные библиотеки загружают версии с ошибками старых версий с 2009 года.
Java EE 7 имеет JSON API в javax.json
, см. Javadoc . Из того, что я могу сказать, у него нет простого метода для сортировки любого объекта в JSON, вам нужно построить JsonObject
или JsonArray
.
import javax.json.*;
JsonObject value = Json.createObjectBuilder()
.add("firstName", "John")
.add("lastName", "Smith")
.add("age", 25)
.add("address", Json.createObjectBuilder()
.add("streetAddress", "21 2nd Street")
.add("city", "New York")
.add("state", "NY")
.add("postalCode", "10021"))
.add("phoneNumber", Json.createArrayBuilder()
.add(Json.createObjectBuilder()
.add("type", "home")
.add("number", "212 555-1234"))
.add(Json.createObjectBuilder()
.add("type", "fax")
.add("number", "646 555-4567")))
.build();
JsonWriter jsonWriter = Json.createWriter(...);
jsonWriter.writeObject(value);
jsonWriter.close();
Но я предполагаю, что другой библиотеки, такие как GSON, будут иметь адаптеры для создания объектов, реализующих эти интерфейсы.
Самый быстрый и простой способ, которым я нашел Json-ify POJO, - использовать библиотеку Gson . Это сообщение в блоге дает краткий обзор использования библиотеки.
После публикации JAVAEE8 теперь вы можете использовать новый JAVAEE API JSON-B ( JSR367 )
Зависимость Maven:
<dependency>
<groupId>javax.json.bind</groupId>
<artifactId>javax.json.bind-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>yasson</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1</version>
</dependency>
Вот некоторый снимок кода:
Jsonb jsonb = JsonbBuilder.create();
// Two important API : toJson fromJson
String result = jsonb.toJson(listaDePontos);
JSON-P также обновлен до 1.1 и более прост в использовании. JSON-P 1.1 ( JSR374 )
Зависимость Maven:
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1</version>
</dependency>
Вот моментальный снимок кода запуска:
String data = "{\"name\":\"Json\","
+ "\"age\": 29,"
+ " \"phoneNumber\": [10000,12000],"
+ "\"address\": \"test\"}";
JsonObject original = Json.createReader(new StringReader(data)).readObject();
/**getValue*/
JsonPointer pAge = Json.createPointer("/age");
JsonValue v = pAge.getValue(original);
System.out.println("age is " + v.toString());
JsonPointer pPhone = Json.createPointer("/phoneNumber/1");
System.out.println("phoneNumber 2 is " + pPhone.getValue(original).toString());
_backingFields_
в JSON. Я пробовал DataMembers, но это не помогло. Поэтому я вернулся кStringBuilder
и просто сделал это способом KISS. – ppumkin 7 August 2014 в 22:38