>  Q&A  >  본문

python - 数据库提取出的数据转json

我从数据库中取出两列数据得到

data = [['美国', 46], ['英国', 27], ['中国', 26]]

如何转换为json格式的文件

{
    {
        name: '美国',
        value: 46
    },
    {
        name: '英国',
        value: 27
    },
    {
        name: '中国',
        value: 26
    },
}

求相关的python代码。最好能附上注释,本人初学者,多包涵,真的不是很会这个问题。

PHP中文网PHP中文网2741일 전735

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-18 09:30:56

    당신이 원하는 결과는 다음과 같습니다.

    으아악

    또는:

    으아악 으아악

    json 형식은 실제로 Python 개체를 일반 텍스트 파일(Python용)로 직렬화합니다.
    json.dumps 함수는 Python 개체를 json 문자열로 변환(직렬화)합니다. 이는 들여쓰기에 공백 4개를 사용한다는 의미입니다. 또한 일반 문자열이므로 다음을 수행할 수 있습니다.

    으아악

    초보자에게는 위의 코드가 이해하기 쉽지 않을 수 있습니다. 첫 번째 함수를 좀 더 바보 같은 방식으로 작성해 보겠습니다.

    으아악

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 09:30:56

    질문에 대해

    @pylego 문제가 있습니다. 출력 예제가 표준 json이 아닙니다(json의 표준 정의는 JSON 소개를 참조하세요). {}는 Python의 사전과 유사하게 구성되어야 합니다. 키로 구성됩니다. 제공한 예는 다음과 같습니다.

    으아악

    분명히 규정을 준수하지 않으므로 다음과 같이 추측하세요.

    으아악

    당신이 원하는 것입니다.

    방법

    으아악

    방법은 모든 사람에게 유사해야 하며 대략 세 부분으로 나눌 수 있습니다.

    • data을 원하는 형식으로 변환: 사전 목록

    • json 모듈을 사용하여 datajson_data

    • 로 변환합니다.
    • 파일에 쓰기

    (1) data을 원하는 형식으로 변환: 사전 목록

    첫 번째 부분은 상당히 다릅니다. 저는 names 이 목록을 먼저 만들기로 결정했습니다.

    으아악

    실제로 이는 다음과 유사합니다.

    으아악

    도 마찬가지지만 split을 사용하는 방식이 쓰기에 빠르기 때문에 정말 마음에 듭니다(프로젝트가 많을 때는 따옴표를 많이 붙일 필요가 없습니다).

    그런 다음 목록 이해를 사용하여 사전 목록을 만듭니다.

    으아악

    먼저 for d in data를 사용하여 data의 각 쌍을 반복한 다음 zip을 사용하여 프로젝트 이름을 해당 값과 결합합니다.

    으아악

    그런 다음 dict은 iterables(각 항목은 두 요소 튜플과 같은 키-값 쌍임)를 가져와 사전을 생성할 수 있습니다.

    (2) json 모듈을 사용하여 datajson_data로 변환합니다.

    두 번째 부분, 덤프 아웃 json_data, 이것은 매우 쉽습니다. dumps을 사용하세요. json.dumps

    를 참조하세요. 으아악
    • sort_keys: json의 object에 있는 키를 정렬하며,

    • 설정 여부를 설정할 수 있습니다.
    • indent: 들여쓰기 설정

    • separators: json 출력에 대한 구분 기호를 설정합니다. ','은 항목을 구분하는 데 사용되며 ': '은 키와 값을 구분하는 데 사용됩니다

    • ensure_ascii: 인쇄 시 유니코드 이스케이프 False

      를 비활성화하려면
    • 로 설정합니다.

    (3) 파일에 쓰기

    특별한 것은 없습니다. with을 사용하여 파일 전환을 처리하고, print(file=XXX)을 사용하여

    을 출력합니다.

    내가 답변한 질문: Python-QA

    회신하다
    0
  • 취소회신하다