pandas
представляет удобное решение:
import pandas as pd
import numpy as np
df=pd.DataFrame(myarray, columns=["x", "y"])
df["Section"]=df.index
df.to_json(orient="records")
это дает:
'[{"x":148,"y":362,"Section":0},{"x":153,"y":403,"Section":1},
{"x":163,"y":443,"Section":2},{"x":172,"y":483,"Section":3},
{"x":186,"y":521,"Section":4},{"x":210,"y":553,"Section":5},
{"x":239,"y":581,"Section":6},{"x":273,"y":604,"Section":7},
{"x":314,"y":611,"Section":8},{"x":353,"y":602,"Section":9}]'
Решение немного отличается, но вы можете легко найти свой путь в чистом Python превратить его в вашу структуру.
Когда Вы добавите немного столбца к своей таблице, это займет целый байт в каждой записи, не только единственный бит. Когда Вы добавите второй разрядный столбец, он будет сохранен в том же байте. Девятый разрядный столбец потребует второго байта устройства хранения данных. Таблицы со столбцом на 1 бит не получат выгоды устройства хранения данных.
Tinyint и бит могут оба быть заставлены работать, я использовал и успешно и не имею никакого решительного предпочтения.
Мне нравится использовать символ (1) с 'T' или 'F'. Да этим можно злоупотребить с другими значениями, но по крайней мере легко просмотреть в отчетах или других местах, где битовые или двоичные значения более трудны работать с.
Если Вы используете MySQL, то не рекомендуется использовать Тип данных bit - http://www.xaprb.com/blog/2006/04/11/bit-values-in-mysql/
@Kevin: я полагаю, что можно использовать group by
на битовых полях (SQL Server 2005):
declare @t table (
descr varchar(10),
myBit1 bit,
myBit2 bit
)
insert into @t values ('test1', 0, 1)
insert into @t values ('test2', 1, 0)
insert into @t values ('test3', 1, 1)
insert into @t values ('test4', 0, 0)
select myBit1, count(myBit1) from @t group by myBit1
select myBit2, count(myBit1) from @t group by myBit2
Результаты:
myBit1
------ -----------
0 2
1 2
myBit2
------ -----------
0 2
1 2
Мы создаем все наши таблицы с международным "векторным" полем. Мы затем используем то поле в качестве набора 32 битов, которые мы можем присвоить для любой цели. (Потенциально использование группы битов для ряда состояний). Избегает нас имеющий необходимость продолжать добавлять в полях признака, если мы забываем.
Я просто попытался группироваться на бите (SQL Server 2k5), и он хорошо работал для меня. Мне нравится использовать правильный тип данных для приложения. Если это - истинное/ложное поле, то укусил, то, что я использую...
Я использую бит, потому что он сохраняет меня имеющий необходимость использовать проверочное ограничение, и потому что мой ORM автоматически преобразует бит в nullable булевскую переменную (C#), который я очень ценю однажды кодирование.
Булевская переменная, по определению, позволяет только два значения. Почему Вам были бы нужны что-то большее чем единственный бит для этого? если Вам нужны три (или больше) указывают логику, то используют больший тип данных, но я был бы (и делать) палка с битовыми полями для стандартной булевой логики.
Предыдущее сообщение StackOverflow: , Каково различие между BIT и TINYINT в MySQL?
При добавлении нового столбца "BOOL", MySQL на самом деле использует TINYINT.
я просто придерживался бы с BOOL (иначе TINYINT) и движение с жизнью.
Для пользователей MySql - , Почему Вы не должны использовать столбцы BIT в MySQL
Я использую биты в надлежащих случаях. Кроме него являющийся семантически корректным типом (количество семантики!), несколько битовых полей (до 8) в одной строке (на SQL Server, так или иначе) могут быть консолидированы в единственный байт устройства хранения данных. После восьмого дополнительный байт необходим для следующих 8 и так далее.
Ссылки:
Бит..., если Вы не имеете "верны / ложь / файл, не найденный" клан
В случае, если Вы не получили ссылку...
И в случае Linq2SQL, разрядных работ с истинным/ложным, который помогает программировать для. Существуют преимущества для обоих.
И там также программирует обслуживание для рассмотрения. Что происходит, если Вы (или младший программист интерна) используете 2, 3, 25, 41, 167, 200 и т.д.? Где это документируется? Биты самодокументируют и довольно универсальные.