我从数据库中取出两列数据得到
data = [['美国', 46], ['英国', 27], ['中国', 26]]
如何转换为json格式的文件
{ { name: '美国', value: 46 }, { name: '英国', value: 27 }, { name: '中国', value: 26 }, }
求相关的python代码。最好能附上注释,本人初学者,多包涵,真的不是很会这个问题。
认证高级PHP讲师
당신이 원하는 결과는 다음과 같습니다.
또는:
json 형식은 실제로 Python 개체를 일반 텍스트 파일(Python용)로 직렬화합니다. json.dumps 함수는 Python 개체를 json 문자열로 변환(직렬화)합니다. 이는 들여쓰기에 공백 4개를 사용한다는 의미입니다. 또한 일반 문자열이므로 다음을 수행할 수 있습니다.
초보자에게는 위의 코드가 이해하기 쉽지 않을 수 있습니다. 첫 번째 함수를 좀 더 바보 같은 방식으로 작성해 보겠습니다.
@pylego 문제가 있습니다. 출력 예제가 표준 json이 아닙니다(json의 표준 정의는 JSON 소개를 참조하세요). {}는 Python의 사전과 유사하게 구성되어야 합니다. 키로 구성됩니다. 제공한 예는 다음과 같습니다.
{}
분명히 규정을 준수하지 않으므로 다음과 같이 추측하세요.
당신이 원하는 것입니다.
방법은 모든 사람에게 유사해야 하며 대략 세 부분으로 나눌 수 있습니다.
data을 원하는 형식으로 변환: 사전 목록
data
json 모듈을 사용하여 data를 json_data
json
json_data
파일에 쓰기
첫 번째 부분은 상당히 다릅니다. 저는 names 이 목록을 먼저 만들기로 결정했습니다.
names
실제로 이는 다음과 유사합니다.
도 마찬가지지만 split을 사용하는 방식이 쓰기에 빠르기 때문에 정말 마음에 듭니다(프로젝트가 많을 때는 따옴표를 많이 붙일 필요가 없습니다).
split
그런 다음 목록 이해를 사용하여 사전 목록을 만듭니다.
먼저 for d in data를 사용하여 data의 각 쌍을 반복한 다음 zip을 사용하여 프로젝트 이름을 해당 값과 결합합니다.
for d in data
zip
그런 다음 dict은 iterables(각 항목은 두 요소 튜플과 같은 키-값 쌍임)를 가져와 사전을 생성할 수 있습니다.
dict
두 번째 부분, 덤프 아웃 json_data, 이것은 매우 쉽습니다. dumps을 사용하세요. json.dumps
dumps
sort_keys: json의 object에 있는 키를 정렬하며,
sort_keys
object
indent: 들여쓰기 설정
indent
separators: json 출력에 대한 구분 기호를 설정합니다. ','은 항목을 구분하는 데 사용되며 ': '은 키와 값을 구분하는 데 사용됩니다
separators
','
': '
ensure_ascii: 인쇄 시 유니코드 이스케이프 False
ensure_ascii
False
특별한 것은 없습니다. with을 사용하여 파일 전환을 처리하고, print(file=XXX)을 사용하여
with
print(file=XXX)
내가 답변한 질문: Python-QA
당신이 원하는 결과는 다음과 같습니다.
으아악또는:
으아악 으아악json 형식은 실제로 Python 개체를 일반 텍스트 파일(Python용)로 직렬화합니다.
으아악json.dumps 함수는 Python 개체를 json 문자열로 변환(직렬화)합니다. 이는 들여쓰기에 공백 4개를 사용한다는 의미입니다. 또한 일반 문자열이므로 다음을 수행할 수 있습니다.
초보자에게는 위의 코드가 이해하기 쉽지 않을 수 있습니다. 첫 번째 함수를 좀 더 바보 같은 방식으로 작성해 보겠습니다.
으아악질문에 대해
@pylego 문제가 있습니다. 출력 예제가 표준 json이 아닙니다(json의 표준 정의는 JSON 소개를 참조하세요).
으아악{}
는 Python의 사전과 유사하게 구성되어야 합니다. 키로 구성됩니다. 제공한 예는 다음과 같습니다.분명히 규정을 준수하지 않으므로 다음과 같이 추측하세요.
으아악당신이 원하는 것입니다.
방법
으아악방법은 모든 사람에게 유사해야 하며 대략 세 부분으로 나눌 수 있습니다.
data
을 원하는 형식으로 변환: 사전 목록json
모듈을 사용하여data
를json_data
파일에 쓰기
(1)
data
을 원하는 형식으로 변환: 사전 목록첫 번째 부분은 상당히 다릅니다. 저는
으아악names
이 목록을 먼저 만들기로 결정했습니다.실제로 이는 다음과 유사합니다.
으아악도 마찬가지지만
split
을 사용하는 방식이 쓰기에 빠르기 때문에 정말 마음에 듭니다(프로젝트가 많을 때는 따옴표를 많이 붙일 필요가 없습니다).그런 다음 목록 이해를 사용하여 사전 목록을 만듭니다.
으아악먼저
으아악for d in data
를 사용하여data
의 각 쌍을 반복한 다음zip
을 사용하여 프로젝트 이름을 해당 값과 결합합니다.그런 다음
dict
은 iterables(각 항목은 두 요소 튜플과 같은 키-값 쌍임)를 가져와 사전을 생성할 수 있습니다.(2)
json
모듈을 사용하여data
를json_data
로 변환합니다.두 번째 부분, 덤프 아웃
를 참조하세요. 으아악json_data
, 이것은 매우 쉽습니다.dumps
을 사용하세요. json.dumpssort_keys
: json의object
에 있는 키를 정렬하며,indent
: 들여쓰기 설정separators
: json 출력에 대한 구분 기호를 설정합니다.','
은 항목을 구분하는 데 사용되며': '
은 키와 값을 구분하는 데 사용됩니다
를 비활성화하려면ensure_ascii
: 인쇄 시 유니코드 이스케이프False
(3) 파일에 쓰기
특별한 것은 없습니다.
을 출력합니다.with
을 사용하여 파일 전환을 처리하고,print(file=XXX)
을 사용하여내가 답변한 질문: Python-QA