업무에서 사용할 수 있는 파이썬의 기능
애플리케이션(혹은 웹 애플리케이션)을 작성할 때는 데이터를 다루ㅡㄴ 것이 중요하다. 데이터를 다룬다는 것은 데이터가 저장된 파일이나 데이터베이스 또는 웹으로부터 가져온 데이터를 통계 등의 연산이나 데이터 분석 및 시각화 등으로 처리하고, 다시 파일이나 데이터베이스에 저장하는 것을 말한다.
파이썬은 데이터들을 다루기 위한 수많은 라이브러리를 제공한다.
데이터
객체(object), 메모리 -> 실행 중에만 메모리에 존재(list, dict, tuple, str, ...) temporary
파일, 데이터베이스 -> persistence(영속성) storage
이 중에서 우리는 객체와 파일, 웹 크롤링으로 얻은 데이터를 처리하는 방식을 학습한다. 이미 앞에서 리스트, 튜플, 딕셔너리, 문자열 등의 내장 타입 객체와 클래스로부터 생성한 객체를 사용해봤다. 변수나 함수 등의 모든 객체는 파이썬이 실행될 때만 메모리에 존재했다가 객체를 더 이상 사용하지 않거나 파이썬 프로세스가 종료되면 가비지 컬렉터에 의해서 메모리에서 사라진다.
파이썬 실행이 끝나거나 커퓨터를 껐다가 켜도 사용하던 데이터들이 사라지지 않게 하기 위해서는 파일이나 데이터베이스 등의 영구적인 저장장소에 저장해야 한다.
데이터베이스는 크게 세 가지로 분류할 수 있다.
실무에서 데이터베이스를 사용하게 된다면 어떤 데이터베이스를 사용하는지에 따라 다음 단계를 진행하면 된다.
1. 데이터베이스의 특징을 이해
2. 데이터베이스 설치 혹은 데이터베이스에 대한 연결 정보(서버 주소, 포트 번호 등)를 확인
3. 데이터를 조작하는 방법(SQL 언어 혹은 기타)을 학습
4. 데이터베이스에 저장된 데이터의 구조를 파악
5. 파이썬에서 데이터베이스를 연결할 때 필요한 라이브러리를 찾아서 설치
6. 파이썬 라이브러리를 사용하여 데이터베이스를 조작하는 코드를 작성
이제 파일 다루기에 필요한 라이브러리를 설치한다. 라이브러리와 패키지 중 어떤 용어를 사용해도 되지만 라이브러리로 통칭한다. 라이브러리 버전이 다르면 제공하는 함수가 다를 수 있으니 버전을 지정하여 설치한다.
라이브러리명==버전번호 사이에 공백을 입력하면 안된다.
pip는 system 경로에 라이브러리를 설치하므로 루트 또는 관리자 권한이 필요한 문제가 발생할 수 있다. 이때는 사용자 경로에 설치할 수 있는 --user 옵션을 추가하면 루트 권한이 없어도 라이브러리를 설치할 수 있다.
pip install 라이브러리명 --user
pip 명령을 사용하다 보면 다음과 같이 최신 버전으로 업그레이드하라는 경고 문구가 뜨기도 하는데, pip는 라이브러리 설치와 삭제 등 간단한 목적으로만 사용하므로 굳이 최신 버전을 사용할 필요는 없다.
그러나 pip를 실행할 때마다 나타나는 경고 문구가 싫다면 최신 버전으로 업그레이드하면 된다. 명령 프롬프트에서 다음을 실행하면 pip를 최신 버전으로 업그레이드한다.
pip install --upgrade pip --user
엑셀 파일을 다루기 위해 필요한 openpyxl, xlsxwriter 라이브러리 설치
pip install openpyxl
pip install xlsxwriter
워드 파일을 다루기 위한 python-docx 라이브러리 설치
pip install python-docx
파워포인트 파일을 다루기 위한 python-pptx 라이브러리 설치
pip install python-pptx
웹 크롤링에 필요한 selenium 라이브러리 설치
pip install selenium
파이썬 실행 파일을 만들어 배포할 수 있는 pyinstaller 라이브러리 설치
pip install pyinstaller
CSV(Comma Separated Values) 파일은 콤마(쉼표)로 구분된 데이터를 포함하는 파일로 텍스트를 데이터 테이블 형식, 즉 표 형식으로 저장한다. CSV 파일의 각 줄은 테이블의 행을 의미하고 CSV 파일의 콤마는 행에서 열(셀)을 구분한다.
CSV 파일은 작성이 단순하고 용량이 작으며 특별한 프로그램이 설치되어 있지 않아도 사용할 수 있어서 많은 프로그램에서 지원한다. 데이터 타입이 정해져 있지 않고 모든 값은 텍스트 즉, 문자열이다. 글꼴 크기 또는 색상, 셀의 폭과 높이를 지정할 수 없고 셀 병합이나 그림 또는 차트를 포함할 수 없다. 단순한 텍스트만을 저장하기 때문에, 다양한 기능들을 제공하진 않는다.
csv 모듈은 파이썬 표준 라이브러리에서 기본적으로 제공한다.
csv 모듈에서는 DictReader, DictWriter, Dialect, excel, excel_tab, unix_dialect, Sniffer 등의 클래스를 제공한다. 이 중 가장 중요한 객체는 Reader 객체와 Writer 객체다. csv 모듈의 주요 객체를 살펴보자.
CSV 파일과 csv 모듈을 구분하기 위해 CSV 파일을 지칭할 때는 대문자 사용, csv 모듈을 지칭할 때는 소문자 사용
Reader 객체는 csv.reader() 함수를 호출하여 리턴값을 전달받거나 DictReader 클래스로부터 객체를 생성할 수 있다. CSV 파일의 내용을 읽기 위해서는 csv.reader() 함수를 호출하는데, 함수의 매개변수로 open() 함수를 사용해 연 파일을 전달한다.
즉, 다음 코드처럼 open() 함수로 address.csv 파일을 열고 리턴된 파일 객체를 f 변수에 할당한 다음 csv.reader() 함수의 매개변수로 파일 객체인 f를 전달하여 Reader 객체를 리턴받는다.
import csv
f = open('address.csv')
reader = csv.reader(f)
csv.reader() 함수를 호출할 때는 매개변수로 파일 이름의 문자열을 직접 전달하지 않도록 주의한다.
바로 전달하면 파일 이름 자체를 읽어버림
Writer 객체는 csv.writer() 함수를 호출하여 리턴값을 전달받거나 DictWriter 클래스로부터 객체를 생성할 수 있다. CSV 파일에 데이터를 쓰기 위해서는 csv.writer() 함수를 사용하고, 읽을 때와 마찬가지로 open() 함수로 파일을 열어서 파일 객체를 매개변수로 전달해야 한다.
import csv
f = open('write_test.csv', 'w')
writer = csv.write(f, lineterminator='\n')
writer.writerow(('번호', '이름', '성적'))
f.close()
dialect는 방언이라는 뜻으로, 플랫폼이나 프로그램의 개별적인 규칙을 방언이라는 용어로 표현한 것이다. Dialect 객체의 여러 포맷 형식으로 CSV 파일에서 입력과 출력의 형식을 더 쉽게 지정할 수 있다. Dialect의 종류는 'excel', 'excel-tab', 'unix' 등이 있다.
Dialect 객체의 주요 속성은 다음과 같다.
CSV 파일을 읽어서 딕셔너리 형태로 리턴하며, 다음과 같이 CSV 파일을 읽기 쉽게 만들어 주는 다양한 메소드와 속성을 제공한다.
CSV 파일의 내용을 읽어온느 다양한 방법을 코드로 작성해보자.
import csv
f = open('csv_read.csv')
try:
reader = csv.reader(f)
print('CSV 파일 :', list(reader))
except Exception as e:
print('예외 발생 :', e)
finally:
f.close()
print('이용 가능한 Dialects :', csv.list_dialects())
# CSV 파일 반복문으로 읽기
f = open('csv_read.csv')
try:
reader = csv.reader(f)
for r in reader:
print(r)
finally:
f.close()
# CSV 파일 DictReader()를 사용하여 익셔너리로 읽기
f = open('csv_read.csv')
try:
reader = csv.DictReader(f)
for r in reader:
print(r['성'], r['이름'], r['이메일'])
finally:
f.close()
이번에는 CSV 파일을 생성하고 내용을 기록해본다.
import csv
fruits = ['사과', '파인애플', '배', '복숭아']
numbers = [50, 20, 30, 60]
values = [1500, 5000, 2500, 2000]
f = open('csv_write.csv', 'w')
try:
writer = csv.writer(f, lineterminator='\n')
writer.writerow(('번호', '과일', '판매수량', '가격', '판매금액'))
num = len(fruits)
for i in range(num):
writer.writerow((i+1, fruits[i], numbers[i], values[i], (numbers[i]*values[i])))
finally:
f.close()
print(open('csv_write.csv').read())
출력 결과
번호,과일,판매수량,가격,판매금액
1,사과,50,1500,75000
2,파인애플,20,5000,100000
3,배,30,2500,75000
4,복숭아,60,2000,120000
f1 = open('csv_write2.csv', 'w')
try:
csv_writer = csv.writer(f1, lineterminator='\n')
csv_writer.writerow(['첫 번째', '두 번째', '세 번째'])
csv_writer.writerow(['123', '456', '789'])
csv_writer.writerow(['test', 'hello', 'hi'])
finally:
f1.close()
print(open('csv_write2.csv').read())
출력 결과
첫 번째,두 번째,세 번째
123,456,789
test,hello,hi
JSON(JavaScript Object Notation) 데이터는 자바스크립트에서 사용하는 객체 표기 방법을 기반으로 한다. 그렇다고 해서 자바스크립트 전용으로만 쓰이는 데이터는 아니며 웹 브라우저에서 또는 애플리케이션에서 데이터를 주고받을 때 널ㄹ ㅣ사용하는 표준 파일 형식 중 하나이다.
웹을 통해 API를 제공하는 Open API 서비스는 XML 문서 혹은 JSON 문서로 데이터를 전달하는데, 많은 서비스들이 XML 문서보다는 JSON 파일을 훨씬 많이 사용한다. JSON 파일은 파이썬의 딕셔너리와 동일하게 {key:value, key:value, ...} 형태로 사용한다.
파이썬에서 JSON을 다루기 위해서는 파이썬 표준 라이브러리에서 제공하는 json 모듈을 사용한다. JSON에는 문자열, 정수, 불리언, 리스트, 딕셔너리, NoneType 등의 다양한 데이터를 포함할 수 있다.
json 모듈의 주요 함수
파이썬 객체를 JSON 형태로 변환 json.dumps()
JSON 문자열을 파이썬 형태로 변환 json.loads()
[] : 리스트
{} : 딕셔너리
() : 튜플
웹 크롤링 할 때는 JSON 파일로 많이 받아옴
https://jsonplaceholder.typicode.com/todos
JSON 데이터 가져옴
import json
data_json = open('test.json').read()
data = json.loads(data_json)
# data = json.loads(open('bitcoin.json').read())
# data = json.load(open('bitcoin.json'))
# load 는 read 안 씀
print(data)
print("=" * 30)
f = open('json_result.json', 'w')
json.dump(data, f, indent='\t')
# data 무엇을 f 어디에 indent 들여쓰기
f.close()
# 리스트 컴프리헨션을 사용
# json 은 dict 형태이므로, value 값들만 가져와서 리스트로 만들기
values = [items.values() for items in data]
print(values)
print("=" * 30)
result = []
for items in data :
v = items.values()
result.append(v)
print(result)
출력 결과
[{'userId': 1, 'id': 1, 'title': 'delectus aut autem', 'completed': False}, {'userId': 1, 'id': 2, 'title': 'quis ut nam facilis et officia qui', 'completed': False}, {'userId': 1, 'id': 3, 'title': 'fugiat veniam minus', 'completed': False}, {'userId': 1, 'id': 4, 'title': 'et porro tempora', 'completed': True}, {'userId': 1, 'id': 5, 'title': 'laboriosam mollitia et enim quasi adipisci quia provident illum', 'completed': False}, {'userId': 1, 'id': 6, 'title': 'qui ullam ratione quibusdam voluptatem quia omnis', 'completed': False}, {'userId': 1, 'id': 7, 'title': 'illo expedita consequatur quia in', 'completed': False}, {'userId': 1, 'id': 8, 'title': 'quo adipisci enim quam ut ab', 'completed': True}, {'userId': 1, 'id': 9, 'title': 'molestiae perspiciatis ipsa', 'completed': False}, {'userId': 1, 'id': 10, 'title': 'illo est ratione doloremque quia maiores aut', 'completed': True}, {'userId': 1, 'id': 11, 'title': 'vero rerum temporibus dolor', 'completed': True}, {'userId': 1, 'id': 12, 'title': 'ipsa repellendus fugit nisi', 'completed': True}, {'userId': 1, 'id': 13, 'title': 'et doloremque nulla', 'completed': False}, {'userId': 1, 'id': 14, 'title': 'repellendus sunt dolores architecto voluptatum', 'completed': True}, {'userId': 1, 'id': 15, 'title': 'ab voluptatum amet voluptas', 'completed': True}, {'userId': 1, 'id': 16, 'title': 'accusamus eos facilis sint et aut voluptatem', 'completed': True}, {'userId': 1, 'id': 17, 'title': 'quo laboriosam deleniti aut qui', 'completed': True}, {'userId': 1, 'id': 18, 'title': 'dolorum est consequatur ea mollitia in culpa', 'completed': False}, {'userId': 1, 'id': 19, 'title': 'molestiae ipsa aut voluptatibus pariatur dolor nihil', 'completed': True}, {'userId': 1, 'id': 20, 'title': 'ullam nobis libero sapiente ad optio sint', 'completed': True}, {'userId': 2, 'id': 21, 'title': 'suscipit repellat esse quibusdam voluptatem incidunt', 'completed': False}, {'userId': 2, 'id': 22, 'title': 'distinctio vitae autem nihil ut molestias quo', 'completed': True}, {'userId': 2, 'id': 23, 'title': 'et itaque necessitatibus maxime molestiae qui quas velit', 'completed': False}, {'userId': 2, 'id': 24, 'title': 'adipisci non ad dicta qui amet quaerat doloribus ea', 'completed': False}, {'userId': 2, 'id': 25, 'title': 'voluptas quo tenetur perspiciatis explicabo natus', 'completed': True}, {'userId': 2, 'id': 26, 'title': 'aliquam aut quasi', 'completed': True}, {'userId': 2, 'id': 27, 'title': 'veritatis pariatur delectus', 'completed': True}, {'userId': 2, 'id': 28, 'title': 'nesciunt totam sit blanditiis sit', 'completed': False}, {'userId': 2, 'id': 29, 'title': 'laborum aut in quam', 'completed': False}, {'userId': 2, 'id': 30, 'title': 'nemo perspiciatis repellat ut dolor libero commodi blanditiis omnis', 'completed': True}, {'userId': 2, 'id': 31, 'title': 'repudiandae totam in est sint facere fuga', 'completed': False}, {'userId': 2, 'id': 32, 'title': 'earum doloribus ea doloremque quis', 'completed': False}, {'userId': 2, 'id': 33, 'title': 'sint sit aut vero', 'completed': False}, {'userId': 2, 'id': 34, 'title': 'porro aut necessitatibus eaque distinctio', 'completed': False}, {'userId': 2, 'id': 35, 'title': 'repellendus veritatis molestias dicta incidunt', 'completed': True}, {'userId': 2, 'id': 36, 'title': 'excepturi deleniti adipisci voluptatem et neque optio illum ad', 'completed': True}, {'userId': 2, 'id': 37, 'title': 'sunt cum tempora', 'completed': False}, {'userId': 2, 'id': 38, 'title': 'totam quia non', 'completed': False}, {'userId': 2, 'id': 39, 'title': 'doloremque quibusdam asperiores libero corrupti illum qui omnis', 'completed': False}, {'userId': 2, 'id': 40, 'title': 'totam atque quo nesciunt', 'completed': True}, {'userId': 3, 'id': 41, 'title': 'aliquid amet impedit consequatur aspernatur placeat eaque fugiat suscipit', 'completed': False}, {'userId': 3, 'id': 42, 'title': 'rerum perferendis error quia ut eveniet', 'completed': False}, {'userId': 3, 'id': 43, 'title': 'tempore ut sint quis recusandae', 'completed': True}, {'userId': 3, 'id': 44, 'title': 'cum debitis quis accusamus doloremque ipsa natus sapiente omnis', 'completed': True}, {'userId': 3, 'id': 45, 'title': 'velit soluta adipisci molestias reiciendis harum', 'completed': False}, {'userId': 3, 'id': 46, 'title': 'vel voluptatem repellat nihil placeat corporis', 'completed': False}, {'userId': 3, 'id': 47, 'title': 'nam qui rerum fugiat accusamus', 'completed': False}, {'userId': 3, 'id': 48, 'title': 'sit reprehenderit omnis quia', 'completed': False}, {'userId': 3, 'id': 49, 'title': 'ut necessitatibus aut maiores debitis officia blanditiis velit et', 'completed': False}, {'userId': 3, 'id': 50, 'title': 'cupiditate necessitatibus ullam aut quis dolor voluptate', 'completed': True}, {'userId': 3, 'id': 51, 'title': 'distinctio exercitationem ab doloribus', 'completed': False}, {'userId': 3, 'id': 52, 'title': 'nesciunt dolorum quis recusandae ad pariatur ratione', 'completed': False}, {'userId': 3, 'id': 53, 'title': 'qui labore est occaecati recusandae aliquid quam', 'completed': False}, {'userId': 3, 'id': 54, 'title': 'quis et est ut voluptate quam dolor', 'completed': True}, {'userId': 3, 'id': 55, 'title': 'voluptatum omnis minima qui occaecati provident nulla voluptatem ratione', 'completed': True}, {'userId': 3, 'id': 56, 'title': 'deleniti ea temporibus enim', 'completed': True}, {'userId': 3, 'id': 57, 'title': 'pariatur et magnam ea doloribus similique voluptatem rerum quia', 'completed': False}, {'userId': 3, 'id': 58, 'title': 'est dicta totam qui explicabo doloribus qui dignissimos', 'completed': False}, {'userId': 3, 'id': 59, 'title': 'perspiciatis velit id laborum placeat iusto et aliquam odio', 'completed': False}, {'userId': 3, 'id': 60, 'title': 'et sequi qui architecto ut adipisci', 'completed': True}, {'userId': 4, 'id': 61, 'title': 'odit optio omnis qui sunt', 'completed': True}, {'userId': 4, 'id': 62, 'title': 'et placeat et tempore aspernatur sint numquam', 'completed': False}, {'userId': 4, 'id': 63, 'title': 'doloremque aut dolores quidem fuga qui nulla', 'completed': True}, {'userId': 4, 'id': 64, 'title': 'voluptas consequatur qui ut quia magnam nemo esse', 'completed': False}, {'userId': 4, 'id': 65, 'title': 'fugiat pariatur ratione ut asperiores necessitatibus magni', 'completed': False}, {'userId': 4, 'id': 66, 'title': 'rerum eum molestias autem voluptatum sit optio', 'completed': False}, {'userId': 4, 'id': 67, 'title': 'quia voluptatibus voluptatem quos similique maiores repellat', 'completed': False}, {'userId': 4, 'id': 68, 'title': 'aut id perspiciatis voluptatem iusto', 'completed': False}, {'userId': 4, 'id': 69, 'title': 'doloribus sint dolorum ab adipisci itaque dignissimos aliquam suscipit', 'completed': False}, {'userId': 4, 'id': 70, 'title': 'ut sequi accusantium et mollitia delectus sunt', 'completed': False}, {'userId': 4, 'id': 71, 'title': 'aut velit saepe ullam', 'completed': False}, {'userId': 4, 'id': 72, 'title': 'praesentium facilis facere quis harum voluptatibus voluptatem eum', 'completed': False}, {'userId': 4, 'id': 73, 'title': 'sint amet quia totam corporis qui exercitationem commodi', 'completed': True}, {'userId': 4, 'id': 74, 'title': 'expedita tempore nobis eveniet laborum maiores', 'completed': False}, {'userId': 4, 'id': 75, 'title': 'occaecati adipisci est possimus totam', 'completed': False}, {'userId': 4, 'id': 76, 'title': 'sequi dolorem sed', 'completed': True}, {'userId': 4, 'id': 77, 'title': 'maiores aut nesciunt delectus exercitationem vel assumenda eligendi at', 'completed': False}, {'userId': 4, 'id': 78, 'title': 'reiciendis est magnam amet nemo iste recusandae impedit quaerat', 'completed': False}, {'userId': 4, 'id': 79, 'title': 'eum ipsa maxime ut', 'completed': True}, {'userId': 4, 'id': 80, 'title': 'tempore molestias dolores rerum sequi voluptates ipsum consequatur', 'completed': True}, {'userId': 5, 'id': 81, 'title': 'suscipit qui totam', 'completed': True}, {'userId': 5, 'id': 82, 'title': 'voluptates eum voluptas et dicta', 'completed': False}, {'userId': 5, 'id': 83, 'title': 'quidem at rerum quis ex aut sit quam', 'completed': True}, {'userId': 5, 'id': 84, 'title': 'sunt veritatis ut voluptate', 'completed': False}, {'userId': 5, 'id': 85, 'title': 'et quia ad iste a', 'completed': True}, {'userId': 5, 'id': 86, 'title': 'incidunt ut saepe autem', 'completed': True}, {'userId': 5, 'id': 87, 'title': 'laudantium quae eligendi consequatur quia et vero autem', 'completed': True}, {'userId': 5, 'id': 88, 'title': 'vitae aut excepturi laboriosam sint aliquam et et accusantium', 'completed': False}, {'userId': 5, 'id': 89, 'title': 'sequi ut omnis et', 'completed': True}, {'userId': 5, 'id': 90, 'title': 'molestiae nisi accusantium tenetur dolorem et', 'completed': True}, {'userId': 5, 'id': 91, 'title': 'nulla quis consequatur saepe qui id expedita', 'completed': True}, {'userId': 5, 'id': 92, 'title': 'in omnis laboriosam', 'completed': True}, {'userId': 5, 'id': 93, 'title': 'odio iure consequatur molestiae quibusdam necessitatibus quia sint', 'completed': True}, {'userId': 5, 'id': 94, 'title': 'facilis modi saepe mollitia', 'completed': False}, {'userId': 5, 'id': 95, 'title': 'vel nihil et molestiae iusto assumenda nemo quo ut', 'completed': True}, {'userId': 5, 'id': 96, 'title': 'nobis suscipit ducimus enim asperiores voluptas', 'completed': False}, {'userId': 5, 'id': 97, 'title': 'dolorum laboriosam eos qui iure aliquam', 'completed': False}, {'userId': 5, 'id': 98, 'title': 'debitis accusantium ut quo facilis nihil quis sapiente necessitatibus', 'completed': True}, {'userId': 5, 'id': 99, 'title': 'neque voluptates ratione', 'completed': False}, {'userId': 5, 'id': 100, 'title': 'excepturi a et neque qui expedita vel voluptate', 'completed': False}, {'userId': 6, 'id': 101, 'title': 'explicabo enim cumque porro aperiam occaecati minima', 'completed': False}, {'userId': 6, 'id': 102, 'title': 'sed ab consequatur', 'completed': False}, {'userId': 6, 'id': 103, 'title': 'non sunt delectus illo nulla tenetur enim omnis', 'completed': False}, {'userId': 6, 'id': 104, 'title': 'excepturi non laudantium quo', 'completed': False}, {'userId': 6, 'id': 105, 'title': 'totam quia dolorem et illum repellat voluptas optio', 'completed': True}, {'userId': 6, 'id': 106, 'title': 'ad illo quis voluptatem temporibus', 'completed': True}, {'userId': 6, 'id': 107, 'title': 'praesentium facilis omnis laudantium fugit ad iusto nihil nesciunt', 'completed': False}, {'userId': 6, 'id': 108, 'title': 'a eos eaque nihil et exercitationem incidunt delectus', 'completed': True}, {'userId': 6, 'id': 109, 'title': 'autem temporibus harum quisquam in culpa', 'completed': True}, {'userId': 6, 'id': 110, 'title': 'aut aut ea corporis', 'completed': True}, {'userId': 6, 'id': 111, 'title': 'magni accusantium labore et id quis provident', 'completed': False}, {'userId': 6, 'id': 112, 'title': 'consectetur impedit quisquam qui deserunt non rerum consequuntur eius', 'completed': False}, {'userId': 6, 'id': 113, 'title': 'quia atque aliquam sunt impedit voluptatum rerum assumenda nisi', 'completed': False}, {'userId': 6, 'id': 114, 'title': 'cupiditate quos possimus corporis quisquam exercitationem beatae', 'completed': False}, {'userId': 6, 'id': 115, 'title': 'sed et ea eum', 'completed': False}, {'userId': 6, 'id': 116, 'title': 'ipsa dolores vel facilis ut', 'completed': True}, {'userId': 6, 'id': 117, 'title': 'sequi quae est et qui qui eveniet asperiores', 'completed': False}, {'userId': 6, 'id': 118, 'title': 'quia modi consequatur vero fugiat', 'completed': False}, {'userId': 6, 'id': 119, 'title': 'corporis ducimus ea perspiciatis iste', 'completed': False}, {'userId': 6, 'id': 120, 'title': 'dolorem laboriosam vel voluptas et aliquam quasi', 'completed': False}, {'userId': 7, 'id': 121, 'title': 'inventore aut nihil minima laudantium hic qui omnis', 'completed': True}, {'userId': 7, 'id': 122, 'title': 'provident aut nobis culpa', 'completed': True}, {'userId': 7, 'id': 123, 'title': 'esse et quis iste est earum aut impedit', 'completed': False}, {'userId': 7, 'id': 124, 'title': 'qui consectetur id', 'completed': False}, {'userId': 7, 'id': 125, 'title': 'aut quasi autem iste tempore illum possimus', 'completed': False}, {'userId': 7, 'id': 126, 'title': 'ut asperiores perspiciatis veniam ipsum rerum saepe', 'completed': True}, {'userId': 7, 'id': 127, 'title': 'voluptatem libero consectetur rerum ut', 'completed': True}, {'userId': 7, 'id': 128, 'title': 'eius omnis est qui voluptatem autem', 'completed': False}, {'userId': 7, 'id': 129, 'title': 'rerum culpa quis harum', 'completed': False}, {'userId': 7, 'id': 130, 'title': 'nulla aliquid eveniet harum laborum libero alias ut unde', 'completed': True}, {'userId': 7, 'id': 131, 'title': 'qui ea incidunt quis', 'completed': False}, {'userId': 7, 'id': 132, 'title': 'qui molestiae voluptatibus velit iure harum quisquam', 'completed': True}, {'userId': 7, 'id': 133, 'title': 'et labore eos enim rerum consequatur sunt', 'completed': True}, {'userId': 7, 'id': 134, 'title': 'molestiae doloribus et laborum quod ea', 'completed': False}, {'userId': 7, 'id': 135, 'title': 'facere ipsa nam eum voluptates reiciendis vero qui', 'completed': False}, {'userId': 7, 'id': 136, 'title': 'asperiores illo tempora fuga sed ut quasi adipisci', 'completed': False}, {'userId': 7, 'id': 137, 'title': 'qui sit non', 'completed': False}, {'userId': 7, 'id': 138, 'title': 'placeat minima consequatur rem qui ut', 'completed': True}, {'userId': 7, 'id': 139, 'title': 'consequatur doloribus id possimus voluptas a voluptatem', 'completed': False}, {'userId': 7, 'id': 140, 'title': 'aut consectetur in blanditiis deserunt quia sed laboriosam', 'completed': True}, {'userId': 8, 'id': 141, 'title': 'explicabo consectetur debitis voluptates quas quae culpa rerum non', 'completed': True}, {'userId': 8, 'id': 142, 'title': 'maiores accusantium architecto necessitatibus reiciendis ea aut', 'completed': True}, {'userId': 8, 'id': 143, 'title': 'eum non recusandae cupiditate animi', 'completed': False}, {'userId': 8, 'id': 144, 'title': 'ut eum exercitationem sint', 'completed': False}, {'userId': 8, 'id': 145, 'title': 'beatae qui ullam incidunt voluptatem non nisi aliquam', 'completed': False}, {'userId': 8, 'id': 146, 'title': 'molestiae suscipit ratione nihil odio libero impedit vero totam', 'completed': True}, {'userId': 8, 'id': 147, 'title': 'eum itaque quod reprehenderit et facilis dolor autem ut', 'completed': True}, {'userId': 8, 'id': 148, 'title': 'esse quas et quo quasi exercitationem', 'completed': False}, {'userId': 8, 'id': 149, 'title': 'animi voluptas quod perferendis est', 'completed': False}, {'userId': 8, 'id': 150, 'title': 'eos amet tempore laudantium fugit a', 'completed': False}, {'userId': 8, 'id': 151, 'title': 'accusamus adipisci dicta qui quo ea explicabo sed vero', 'completed': True}, {'userId': 8, 'id': 152, 'title': 'odit eligendi recusandae doloremque cumque non', 'completed': False}, {'userId': 8, 'id': 153, 'title': 'ea aperiam consequatur qui repellat eos', 'completed': False}, {'userId': 8, 'id': 154, 'title': 'rerum non ex sapiente', 'completed': True}, {'userId': 8, 'id': 155, 'title': 'voluptatem nobis consequatur et assumenda magnam', 'completed': True}, {'userId': 8, 'id': 156, 'title': 'nam quia quia nulla repellat assumenda quibusdam sit nobis', 'completed': True}, {'userId': 8, 'id': 157, 'title': 'dolorem veniam quisquam deserunt repellendus', 'completed': True}, {'userId': 8, 'id': 158, 'title': 'debitis vitae delectus et harum accusamus aut deleniti a', 'completed': True}, {'userId': 8, 'id': 159, 'title': 'debitis adipisci quibusdam aliquam sed dolore ea praesentium nobis', 'completed': True}, {'userId': 8, 'id': 160, 'title': 'et praesentium aliquam est', 'completed': False}, {'userId': 9, 'id': 161, 'title': 'ex hic consequuntur earum omnis alias ut occaecati culpa', 'completed': True}, {'userId': 9, 'id': 162, 'title': 'omnis laboriosam molestias animi sunt dolore', 'completed': True}, {'userId': 9, 'id': 163, 'title': 'natus corrupti maxime laudantium et voluptatem laboriosam odit', 'completed': False}, {'userId': 9, 'id': 164, 'title': 'reprehenderit quos aut aut consequatur est sed', 'completed': False}, {'userId': 9, 'id': 165, 'title': 'fugiat perferendis sed aut quidem', 'completed': False}, {'userId': 9, 'id': 166, 'title': 'quos quo possimus suscipit minima ut', 'completed': False}, {'userId': 9, 'id': 167, 'title': 'et quis minus quo a asperiores molestiae', 'completed': False}, {'userId': 9, 'id': 168, 'title': 'recusandae quia qui sunt libero', 'completed': False}, {'userId': 9, 'id': 169, 'title': 'ea odio perferendis officiis', 'completed': True}, {'userId': 9, 'id': 170, 'title': 'quisquam aliquam quia doloribus aut', 'completed': False}, {'userId': 9, 'id': 171, 'title': 'fugiat aut voluptatibus corrupti deleniti velit iste odio', 'completed': True}, {'userId': 9, 'id': 172, 'title': 'et provident amet rerum consectetur et voluptatum', 'completed': False}, {'userId': 9, 'id': 173, 'title': 'harum ad aperiam quis', 'completed': False}, {'userId': 9, 'id': 174, 'title': 'similique aut quo', 'completed': False}, {'userId': 9, 'id': 175, 'title': 'laudantium eius officia perferendis provident perspiciatis asperiores', 'completed': True}, {'userId': 9, 'id': 176, 'title': 'magni soluta corrupti ut maiores rem quidem', 'completed': False}, {'userId': 9, 'id': 177, 'title': 'et placeat temporibus voluptas est tempora quos quibusdam', 'completed': False}, {'userId': 9, 'id': 178, 'title': 'nesciunt itaque commodi tempore', 'completed': True}, {'userId': 9, 'id': 179, 'title': 'omnis consequuntur cupiditate impedit itaque ipsam quo', 'completed': True}, {'userId': 9, 'id': 180, 'title': 'debitis nisi et dolorem repellat et', 'completed': True}, {'userId': 10, 'id': 181, 'title': 'ut cupiditate sequi aliquam fuga maiores', 'completed': False}, {'userId': 10, 'id': 182, 'title': 'inventore saepe cumque et aut illum enim', 'completed': True}, {'userId': 10, 'id': 183, 'title': 'omnis nulla eum aliquam distinctio', 'completed': True}, {'userId': 10, 'id': 184, 'title': 'molestias modi perferendis perspiciatis', 'completed': False}, {'userId': 10, 'id': 185, 'title': 'voluptates dignissimos sed doloribus animi quaerat aut', 'completed': False}, {'userId': 10, 'id': 186, 'title': 'explicabo odio est et', 'completed': False}, {'userId': 10, 'id': 187, 'title': 'consequuntur animi possimus', 'completed': False}, {'userId': 10, 'id': 188, 'title': 'vel non beatae est', 'completed': True}, {'userId': 10, 'id': 189, 'title': 'culpa eius et voluptatem et', 'completed': True}, {'userId': 10, 'id': 190, 'title': 'accusamus sint iusto et voluptatem exercitationem', 'completed': True}, {'userId': 10, 'id': 191, 'title': 'temporibus atque distinctio omnis eius impedit tempore molestias pariatur', 'completed': True}, {'userId': 10, 'id': 192, 'title': 'ut quas possimus exercitationem sint voluptates', 'completed': False}, {'userId': 10, 'id': 193, 'title': 'rerum debitis voluptatem qui eveniet tempora distinctio a', 'completed': True}, {'userId': 10, 'id': 194, 'title': 'sed ut vero sit molestiae', 'completed': False}, {'userId': 10, 'id': 195, 'title': 'rerum ex veniam mollitia voluptatibus pariatur', 'completed': True}, {'userId': 10, 'id': 196, 'title': 'consequuntur aut ut fugit similique', 'completed': True}, {'userId': 10, 'id': 197, 'title': 'dignissimos quo nobis earum saepe', 'completed': True}, {'userId': 10, 'id': 198, 'title': 'quis eius est sint explicabo', 'completed': True}, {'userId': 10, 'id': 199, 'title': 'numquam repellendus a magnam', 'completed': True}, {'userId': 10, 'id': 200, 'title': 'ipsam aperiam voluptates qui', 'completed': False}]
==============================
[dict_values([1, 1, 'delectus aut autem', False]), dict_values([1, 2, 'quis ut nam facilis et officia qui', False]), dict_values([1, 3, 'fugiat veniam minus', False]), dict_values([1, 4, 'et porro tempora', True]), dict_values([1, 5, 'laboriosam mollitia et enim quasi adipisci quia provident illum', False]), dict_values([1, 6, 'qui ullam ratione quibusdam voluptatem quia omnis', False]), dict_values([1, 7, 'illo expedita consequatur quia in', False]), dict_values([1, 8, 'quo adipisci enim quam ut ab', True]), dict_values([1, 9, 'molestiae perspiciatis ipsa', False]), dict_values([1, 10, 'illo est ratione doloremque quia maiores aut', True]), dict_values([1, 11, 'vero rerum temporibus dolor', True]), dict_values([1, 12, 'ipsa repellendus fugit nisi', True]), dict_values([1, 13, 'et doloremque nulla', False]), dict_values([1, 14, 'repellendus sunt dolores architecto voluptatum', True]), dict_values([1, 15, 'ab voluptatum amet voluptas', True]), dict_values([1, 16, 'accusamus eos facilis sint et aut voluptatem', True]), dict_values([1, 17, 'quo laboriosam deleniti aut qui', True]), dict_values([1, 18, 'dolorum est consequatur ea mollitia in culpa', False]), dict_values([1, 19, 'molestiae ipsa aut voluptatibus pariatur dolor nihil', True]), dict_values([1, 20, 'ullam nobis libero sapiente ad optio sint', True]), dict_values([2, 21, 'suscipit repellat esse quibusdam voluptatem incidunt', False]), dict_values([2, 22, 'distinctio vitae autem nihil ut molestias quo', True]), dict_values([2, 23, 'et itaque necessitatibus maxime molestiae qui quas velit', False]), dict_values([2, 24, 'adipisci non ad dicta qui amet quaerat doloribus ea', False]), dict_values([2, 25, 'voluptas quo tenetur perspiciatis explicabo natus', True]), dict_values([2, 26, 'aliquam aut quasi', True]), dict_values([2, 27, 'veritatis pariatur delectus', True]), dict_values([2, 28, 'nesciunt totam sit blanditiis sit', False]), dict_values([2, 29, 'laborum aut in quam', False]), dict_values([2, 30, 'nemo perspiciatis repellat ut dolor libero commodi blanditiis omnis', True]), dict_values([2, 31, 'repudiandae totam in est sint facere fuga', False]), dict_values([2, 32, 'earum doloribus ea doloremque quis', False]), dict_values([2, 33, 'sint sit aut vero', False]), dict_values([2, 34, 'porro aut necessitatibus eaque distinctio', False]), dict_values([2, 35, 'repellendus veritatis molestias dicta incidunt', True]), dict_values([2, 36, 'excepturi deleniti adipisci voluptatem et neque optio illum ad', True]), dict_values([2, 37, 'sunt cum tempora', False]), dict_values([2, 38, 'totam quia non', False]), dict_values([2, 39, 'doloremque quibusdam asperiores libero corrupti illum qui omnis', False]), dict_values([2, 40, 'totam atque quo nesciunt', True]), dict_values([3, 41, 'aliquid amet impedit consequatur aspernatur placeat eaque fugiat suscipit', False]), dict_values([3, 42, 'rerum perferendis error quia ut eveniet', False]), dict_values([3, 43, 'tempore ut sint quis recusandae', True]), dict_values([3, 44, 'cum debitis quis accusamus doloremque ipsa natus sapiente omnis', True]), dict_values([3, 45, 'velit soluta adipisci molestias reiciendis harum', False]), dict_values([3, 46, 'vel voluptatem repellat nihil placeat corporis', False]), dict_values([3, 47, 'nam qui rerum fugiat accusamus', False]), dict_values([3, 48, 'sit reprehenderit omnis quia', False]), dict_values([3, 49, 'ut necessitatibus aut maiores debitis officia blanditiis velit et', False]), dict_values([3, 50, 'cupiditate necessitatibus ullam aut quis dolor voluptate', True]), dict_values([3, 51, 'distinctio exercitationem ab doloribus', False]), dict_values([3, 52, 'nesciunt dolorum quis recusandae ad pariatur ratione', False]), dict_values([3, 53, 'qui labore est occaecati recusandae aliquid quam', False]), dict_values([3, 54, 'quis et est ut voluptate quam dolor', True]), dict_values([3, 55, 'voluptatum omnis minima qui occaecati provident nulla voluptatem ratione', True]), dict_values([3, 56, 'deleniti ea temporibus enim', True]), dict_values([3, 57, 'pariatur et magnam ea doloribus similique voluptatem rerum quia', False]), dict_values([3, 58, 'est dicta totam qui explicabo doloribus qui dignissimos', False]), dict_values([3, 59, 'perspiciatis velit id laborum placeat iusto et aliquam odio', False]), dict_values([3, 60, 'et sequi qui architecto ut adipisci', True]), dict_values([4, 61, 'odit optio omnis qui sunt', True]), dict_values([4, 62, 'et placeat et tempore aspernatur sint numquam', False]), dict_values([4, 63, 'doloremque aut dolores quidem fuga qui nulla', True]), dict_values([4, 64, 'voluptas consequatur qui ut quia magnam nemo esse', False]), dict_values([4, 65, 'fugiat pariatur ratione ut asperiores necessitatibus magni', False]), dict_values([4, 66, 'rerum eum molestias autem voluptatum sit optio', False]), dict_values([4, 67, 'quia voluptatibus voluptatem quos similique maiores repellat', False]), dict_values([4, 68, 'aut id perspiciatis voluptatem iusto', False]), dict_values([4, 69, 'doloribus sint dolorum ab adipisci itaque dignissimos aliquam suscipit', False]), dict_values([4, 70, 'ut sequi accusantium et mollitia delectus sunt', False]), dict_values([4, 71, 'aut velit saepe ullam', False]), dict_values([4, 72, 'praesentium facilis facere quis harum voluptatibus voluptatem eum', False]), dict_values([4, 73, 'sint amet quia totam corporis qui exercitationem commodi', True]), dict_values([4, 74, 'expedita tempore nobis eveniet laborum maiores', False]), dict_values([4, 75, 'occaecati adipisci est possimus totam', False]), dict_values([4, 76, 'sequi dolorem sed', True]), dict_values([4, 77, 'maiores aut nesciunt delectus exercitationem vel assumenda eligendi at', False]), dict_values([4, 78, 'reiciendis est magnam amet nemo iste recusandae impedit quaerat', False]), dict_values([4, 79, 'eum ipsa maxime ut', True]), dict_values([4, 80, 'tempore molestias dolores rerum sequi voluptates ipsum consequatur', True]), dict_values([5, 81, 'suscipit qui totam', True]), dict_values([5, 82, 'voluptates eum voluptas et dicta', False]), dict_values([5, 83, 'quidem at rerum quis ex aut sit quam', True]), dict_values([5, 84, 'sunt veritatis ut voluptate', False]), dict_values([5, 85, 'et quia ad iste a', True]), dict_values([5, 86, 'incidunt ut saepe autem', True]), dict_values([5, 87, 'laudantium quae eligendi consequatur quia et vero autem', True]), dict_values([5, 88, 'vitae aut excepturi laboriosam sint aliquam et et accusantium', False]), dict_values([5, 89, 'sequi ut omnis et', True]), dict_values([5, 90, 'molestiae nisi accusantium tenetur dolorem et', True]), dict_values([5, 91, 'nulla quis consequatur saepe qui id expedita', True]), dict_values([5, 92, 'in omnis laboriosam', True]), dict_values([5, 93, 'odio iure consequatur molestiae quibusdam necessitatibus quia sint', True]), dict_values([5, 94, 'facilis modi saepe mollitia', False]), dict_values([5, 95, 'vel nihil et molestiae iusto assumenda nemo quo ut', True]), dict_values([5, 96, 'nobis suscipit ducimus enim asperiores voluptas', False]), dict_values([5, 97, 'dolorum laboriosam eos qui iure aliquam', False]), dict_values([5, 98, 'debitis accusantium ut quo facilis nihil quis sapiente necessitatibus', True]), dict_values([5, 99, 'neque voluptates ratione', False]), dict_values([5, 100, 'excepturi a et neque qui expedita vel voluptate', False]), dict_values([6, 101, 'explicabo enim cumque porro aperiam occaecati minima', False]), dict_values([6, 102, 'sed ab consequatur', False]), dict_values([6, 103, 'non sunt delectus illo nulla tenetur enim omnis', False]), dict_values([6, 104, 'excepturi non laudantium quo', False]), dict_values([6, 105, 'totam quia dolorem et illum repellat voluptas optio', True]), dict_values([6, 106, 'ad illo quis voluptatem temporibus', True]), dict_values([6, 107, 'praesentium facilis omnis laudantium fugit ad iusto nihil nesciunt', False]), dict_values([6, 108, 'a eos eaque nihil et exercitationem incidunt delectus', True]), dict_values([6, 109, 'autem temporibus harum quisquam in culpa', True]), dict_values([6, 110, 'aut aut ea corporis', True]), dict_values([6, 111, 'magni accusantium labore et id quis provident', False]), dict_values([6, 112, 'consectetur impedit quisquam qui deserunt non rerum consequuntur eius', False]), dict_values([6, 113, 'quia atque aliquam sunt impedit voluptatum rerum assumenda nisi', False]), dict_values([6, 114, 'cupiditate quos possimus corporis quisquam exercitationem beatae', False]), dict_values([6, 115, 'sed et ea eum', False]), dict_values([6, 116, 'ipsa dolores vel facilis ut', True]), dict_values([6, 117, 'sequi quae est et qui qui eveniet asperiores', False]), dict_values([6, 118, 'quia modi consequatur vero fugiat', False]), dict_values([6, 119, 'corporis ducimus ea perspiciatis iste', False]), dict_values([6, 120, 'dolorem laboriosam vel voluptas et aliquam quasi', False]), dict_values([7, 121, 'inventore aut nihil minima laudantium hic qui omnis', True]), dict_values([7, 122, 'provident aut nobis culpa', True]), dict_values([7, 123, 'esse et quis iste est earum aut impedit', False]), dict_values([7, 124, 'qui consectetur id', False]), dict_values([7, 125, 'aut quasi autem iste tempore illum possimus', False]), dict_values([7, 126, 'ut asperiores perspiciatis veniam ipsum rerum saepe', True]), dict_values([7, 127, 'voluptatem libero consectetur rerum ut', True]), dict_values([7, 128, 'eius omnis est qui voluptatem autem', False]), dict_values([7, 129, 'rerum culpa quis harum', False]), dict_values([7, 130, 'nulla aliquid eveniet harum laborum libero alias ut unde', True]), dict_values([7, 131, 'qui ea incidunt quis', False]), dict_values([7, 132, 'qui molestiae voluptatibus velit iure harum quisquam', True]), dict_values([7, 133, 'et labore eos enim rerum consequatur sunt', True]), dict_values([7, 134, 'molestiae doloribus et laborum quod ea', False]), dict_values([7, 135, 'facere ipsa nam eum voluptates reiciendis vero qui', False]), dict_values([7, 136, 'asperiores illo tempora fuga sed ut quasi adipisci', False]), dict_values([7, 137, 'qui sit non', False]), dict_values([7, 138, 'placeat minima consequatur rem qui ut', True]), dict_values([7, 139, 'consequatur doloribus id possimus voluptas a voluptatem', False]), dict_values([7, 140, 'aut consectetur in blanditiis deserunt quia sed laboriosam', True]), dict_values([8, 141, 'explicabo consectetur debitis voluptates quas quae culpa rerum non', True]), dict_values([8, 142, 'maiores accusantium architecto necessitatibus reiciendis ea aut', True]), dict_values([8, 143, 'eum non recusandae cupiditate animi', False]), dict_values([8, 144, 'ut eum exercitationem sint', False]), dict_values([8, 145, 'beatae qui ullam incidunt voluptatem non nisi aliquam', False]), dict_values([8, 146, 'molestiae suscipit ratione nihil odio libero impedit vero totam', True]), dict_values([8, 147, 'eum itaque quod reprehenderit et facilis dolor autem ut', True]), dict_values([8, 148, 'esse quas et quo quasi exercitationem', False]), dict_values([8, 149, 'animi voluptas quod perferendis est', False]), dict_values([8, 150, 'eos amet tempore laudantium fugit a', False]), dict_values([8, 151, 'accusamus adipisci dicta qui quo ea explicabo sed vero', True]), dict_values([8, 152, 'odit eligendi recusandae doloremque cumque non', False]), dict_values([8, 153, 'ea aperiam consequatur qui repellat eos', False]), dict_values([8, 154, 'rerum non ex sapiente', True]), dict_values([8, 155, 'voluptatem nobis consequatur et assumenda magnam', True]), dict_values([8, 156, 'nam quia quia nulla repellat assumenda quibusdam sit nobis', True]), dict_values([8, 157, 'dolorem veniam quisquam deserunt repellendus', True]), dict_values([8, 158, 'debitis vitae delectus et harum accusamus aut deleniti a', True]), dict_values([8, 159, 'debitis adipisci quibusdam aliquam sed dolore ea praesentium nobis', True]), dict_values([8, 160, 'et praesentium aliquam est', False]), dict_values([9, 161, 'ex hic consequuntur earum omnis alias ut occaecati culpa', True]), dict_values([9, 162, 'omnis laboriosam molestias animi sunt dolore', True]), dict_values([9, 163, 'natus corrupti maxime laudantium et voluptatem laboriosam odit', False]), dict_values([9, 164, 'reprehenderit quos aut aut consequatur est sed', False]), dict_values([9, 165, 'fugiat perferendis sed aut quidem', False]), dict_values([9, 166, 'quos quo possimus suscipit minima ut', False]), dict_values([9, 167, 'et quis minus quo a asperiores molestiae', False]), dict_values([9, 168, 'recusandae quia qui sunt libero', False]), dict_values([9, 169, 'ea odio perferendis officiis', True]), dict_values([9, 170, 'quisquam aliquam quia doloribus aut', False]), dict_values([9, 171, 'fugiat aut voluptatibus corrupti deleniti velit iste odio', True]), dict_values([9, 172, 'et provident amet rerum consectetur et voluptatum', False]), dict_values([9, 173, 'harum ad aperiam quis', False]), dict_values([9, 174, 'similique aut quo', False]), dict_values([9, 175, 'laudantium eius officia perferendis provident perspiciatis asperiores', True]), dict_values([9, 176, 'magni soluta corrupti ut maiores rem quidem', False]), dict_values([9, 177, 'et placeat temporibus voluptas est tempora quos quibusdam', False]), dict_values([9, 178, 'nesciunt itaque commodi tempore', True]), dict_values([9, 179, 'omnis consequuntur cupiditate impedit itaque ipsam quo', True]), dict_values([9, 180, 'debitis nisi et dolorem repellat et', True]), dict_values([10, 181, 'ut cupiditate sequi aliquam fuga maiores', False]), dict_values([10, 182, 'inventore saepe cumque et aut illum enim', True]), dict_values([10, 183, 'omnis nulla eum aliquam distinctio', True]), dict_values([10, 184, 'molestias modi perferendis perspiciatis', False]), dict_values([10, 185, 'voluptates dignissimos sed doloribus animi quaerat aut', False]), dict_values([10, 186, 'explicabo odio est et', False]), dict_values([10, 187, 'consequuntur animi possimus', False]), dict_values([10, 188, 'vel non beatae est', True]), dict_values([10, 189, 'culpa eius et voluptatem et', True]), dict_values([10, 190, 'accusamus sint iusto et voluptatem exercitationem', True]), dict_values([10, 191, 'temporibus atque distinctio omnis eius impedit tempore molestias pariatur', True]), dict_values([10, 192, 'ut quas possimus exercitationem sint voluptates', False]), dict_values([10, 193, 'rerum debitis voluptatem qui eveniet tempora distinctio a', True]), dict_values([10, 194, 'sed ut vero sit molestiae', False]), dict_values([10, 195, 'rerum ex veniam mollitia voluptatibus pariatur', True]), dict_values([10, 196, 'consequuntur aut ut fugit similique', True]), dict_values([10, 197, 'dignissimos quo nobis earum saepe', True]), dict_values([10, 198, 'quis eius est sint explicabo', True]), dict_values([10, 199, 'numquam repellendus a magnam', True]), dict_values([10, 200, 'ipsam aperiam voluptates qui', False])]
==============================
[dict_values([1, 1, 'delectus aut autem', False]), dict_values([1, 2, 'quis ut nam facilis et officia qui', False]), dict_values([1, 3, 'fugiat veniam minus', False]), dict_values([1, 4, 'et porro tempora', True]), dict_values([1, 5, 'laboriosam mollitia et enim quasi adipisci quia provident illum', False]), dict_values([1, 6, 'qui ullam ratione quibusdam voluptatem quia omnis', False]), dict_values([1, 7, 'illo expedita consequatur quia in', False]), dict_values([1, 8, 'quo adipisci enim quam ut ab', True]), dict_values([1, 9, 'molestiae perspiciatis ipsa', False]), dict_values([1, 10, 'illo est ratione doloremque quia maiores aut', True]), dict_values([1, 11, 'vero rerum temporibus dolor', True]), dict_values([1, 12, 'ipsa repellendus fugit nisi', True]), dict_values([1, 13, 'et doloremque nulla', False]), dict_values([1, 14, 'repellendus sunt dolores architecto voluptatum', True]), dict_values([1, 15, 'ab voluptatum amet voluptas', True]), dict_values([1, 16, 'accusamus eos facilis sint et aut voluptatem', True]), dict_values([1, 17, 'quo laboriosam deleniti aut qui', True]), dict_values([1, 18, 'dolorum est consequatur ea mollitia in culpa', False]), dict_values([1, 19, 'molestiae ipsa aut voluptatibus pariatur dolor nihil', True]), dict_values([1, 20, 'ullam nobis libero sapiente ad optio sint', True]), dict_values([2, 21, 'suscipit repellat esse quibusdam voluptatem incidunt', False]), dict_values([2, 22, 'distinctio vitae autem nihil ut molestias quo', True]), dict_values([2, 23, 'et itaque necessitatibus maxime molestiae qui quas velit', False]), dict_values([2, 24, 'adipisci non ad dicta qui amet quaerat doloribus ea', False]), dict_values([2, 25, 'voluptas quo tenetur perspiciatis explicabo natus', True]), dict_values([2, 26, 'aliquam aut quasi', True]), dict_values([2, 27, 'veritatis pariatur delectus', True]), dict_values([2, 28, 'nesciunt totam sit blanditiis sit', False]), dict_values([2, 29, 'laborum aut in quam', False]), dict_values([2, 30, 'nemo perspiciatis repellat ut dolor libero commodi blanditiis omnis', True]), dict_values([2, 31, 'repudiandae totam in est sint facere fuga', False]), dict_values([2, 32, 'earum doloribus ea doloremque quis', False]), dict_values([2, 33, 'sint sit aut vero', False]), dict_values([2, 34, 'porro aut necessitatibus eaque distinctio', False]), dict_values([2, 35, 'repellendus veritatis molestias dicta incidunt', True]), dict_values([2, 36, 'excepturi deleniti adipisci voluptatem et neque optio illum ad', True]), dict_values([2, 37, 'sunt cum tempora', False]), dict_values([2, 38, 'totam quia non', False]), dict_values([2, 39, 'doloremque quibusdam asperiores libero corrupti illum qui omnis', False]), dict_values([2, 40, 'totam atque quo nesciunt', True]), dict_values([3, 41, 'aliquid amet impedit consequatur aspernatur placeat eaque fugiat suscipit', False]), dict_values([3, 42, 'rerum perferendis error quia ut eveniet', False]), dict_values([3, 43, 'tempore ut sint quis recusandae', True]), dict_values([3, 44, 'cum debitis quis accusamus doloremque ipsa natus sapiente omnis', True]), dict_values([3, 45, 'velit soluta adipisci molestias reiciendis harum', False]), dict_values([3, 46, 'vel voluptatem repellat nihil placeat corporis', False]), dict_values([3, 47, 'nam qui rerum fugiat accusamus', False]), dict_values([3, 48, 'sit reprehenderit omnis quia', False]), dict_values([3, 49, 'ut necessitatibus aut maiores debitis officia blanditiis velit et', False]), dict_values([3, 50, 'cupiditate necessitatibus ullam aut quis dolor voluptate', True]), dict_values([3, 51, 'distinctio exercitationem ab doloribus', False]), dict_values([3, 52, 'nesciunt dolorum quis recusandae ad pariatur ratione', False]), dict_values([3, 53, 'qui labore est occaecati recusandae aliquid quam', False]), dict_values([3, 54, 'quis et est ut voluptate quam dolor', True]), dict_values([3, 55, 'voluptatum omnis minima qui occaecati provident nulla voluptatem ratione', True]), dict_values([3, 56, 'deleniti ea temporibus enim', True]), dict_values([3, 57, 'pariatur et magnam ea doloribus similique voluptatem rerum quia', False]), dict_values([3, 58, 'est dicta totam qui explicabo doloribus qui dignissimos', False]), dict_values([3, 59, 'perspiciatis velit id laborum placeat iusto et aliquam odio', False]), dict_values([3, 60, 'et sequi qui architecto ut adipisci', True]), dict_values([4, 61, 'odit optio omnis qui sunt', True]), dict_values([4, 62, 'et placeat et tempore aspernatur sint numquam', False]), dict_values([4, 63, 'doloremque aut dolores quidem fuga qui nulla', True]), dict_values([4, 64, 'voluptas consequatur qui ut quia magnam nemo esse', False]), dict_values([4, 65, 'fugiat pariatur ratione ut asperiores necessitatibus magni', False]), dict_values([4, 66, 'rerum eum molestias autem voluptatum sit optio', False]), dict_values([4, 67, 'quia voluptatibus voluptatem quos similique maiores repellat', False]), dict_values([4, 68, 'aut id perspiciatis voluptatem iusto', False]), dict_values([4, 69, 'doloribus sint dolorum ab adipisci itaque dignissimos aliquam suscipit', False]), dict_values([4, 70, 'ut sequi accusantium et mollitia delectus sunt', False]), dict_values([4, 71, 'aut velit saepe ullam', False]), dict_values([4, 72, 'praesentium facilis facere quis harum voluptatibus voluptatem eum', False]), dict_values([4, 73, 'sint amet quia totam corporis qui exercitationem commodi', True]), dict_values([4, 74, 'expedita tempore nobis eveniet laborum maiores', False]), dict_values([4, 75, 'occaecati adipisci est possimus totam', False]), dict_values([4, 76, 'sequi dolorem sed', True]), dict_values([4, 77, 'maiores aut nesciunt delectus exercitationem vel assumenda eligendi at', False]), dict_values([4, 78, 'reiciendis est magnam amet nemo iste recusandae impedit quaerat', False]), dict_values([4, 79, 'eum ipsa maxime ut', True]), dict_values([4, 80, 'tempore molestias dolores rerum sequi voluptates ipsum consequatur', True]), dict_values([5, 81, 'suscipit qui totam', True]), dict_values([5, 82, 'voluptates eum voluptas et dicta', False]), dict_values([5, 83, 'quidem at rerum quis ex aut sit quam', True]), dict_values([5, 84, 'sunt veritatis ut voluptate', False]), dict_values([5, 85, 'et quia ad iste a', True]), dict_values([5, 86, 'incidunt ut saepe autem', True]), dict_values([5, 87, 'laudantium quae eligendi consequatur quia et vero autem', True]), dict_values([5, 88, 'vitae aut excepturi laboriosam sint aliquam et et accusantium', False]), dict_values([5, 89, 'sequi ut omnis et', True]), dict_values([5, 90, 'molestiae nisi accusantium tenetur dolorem et', True]), dict_values([5, 91, 'nulla quis consequatur saepe qui id expedita', True]), dict_values([5, 92, 'in omnis laboriosam', True]), dict_values([5, 93, 'odio iure consequatur molestiae quibusdam necessitatibus quia sint', True]), dict_values([5, 94, 'facilis modi saepe mollitia', False]), dict_values([5, 95, 'vel nihil et molestiae iusto assumenda nemo quo ut', True]), dict_values([5, 96, 'nobis suscipit ducimus enim asperiores voluptas', False]), dict_values([5, 97, 'dolorum laboriosam eos qui iure aliquam', False]), dict_values([5, 98, 'debitis accusantium ut quo facilis nihil quis sapiente necessitatibus', True]), dict_values([5, 99, 'neque voluptates ratione', False]), dict_values([5, 100, 'excepturi a et neque qui expedita vel voluptate', False]), dict_values([6, 101, 'explicabo enim cumque porro aperiam occaecati minima', False]), dict_values([6, 102, 'sed ab consequatur', False]), dict_values([6, 103, 'non sunt delectus illo nulla tenetur enim omnis', False]), dict_values([6, 104, 'excepturi non laudantium quo', False]), dict_values([6, 105, 'totam quia dolorem et illum repellat voluptas optio', True]), dict_values([6, 106, 'ad illo quis voluptatem temporibus', True]), dict_values([6, 107, 'praesentium facilis omnis laudantium fugit ad iusto nihil nesciunt', False]), dict_values([6, 108, 'a eos eaque nihil et exercitationem incidunt delectus', True]), dict_values([6, 109, 'autem temporibus harum quisquam in culpa', True]), dict_values([6, 110, 'aut aut ea corporis', True]), dict_values([6, 111, 'magni accusantium labore et id quis provident', False]), dict_values([6, 112, 'consectetur impedit quisquam qui deserunt non rerum consequuntur eius', False]), dict_values([6, 113, 'quia atque aliquam sunt impedit voluptatum rerum assumenda nisi', False]), dict_values([6, 114, 'cupiditate quos possimus corporis quisquam exercitationem beatae', False]), dict_values([6, 115, 'sed et ea eum', False]), dict_values([6, 116, 'ipsa dolores vel facilis ut', True]), dict_values([6, 117, 'sequi quae est et qui qui eveniet asperiores', False]), dict_values([6, 118, 'quia modi consequatur vero fugiat', False]), dict_values([6, 119, 'corporis ducimus ea perspiciatis iste', False]), dict_values([6, 120, 'dolorem laboriosam vel voluptas et aliquam quasi', False]), dict_values([7, 121, 'inventore aut nihil minima laudantium hic qui omnis', True]), dict_values([7, 122, 'provident aut nobis culpa', True]), dict_values([7, 123, 'esse et quis iste est earum aut impedit', False]), dict_values([7, 124, 'qui consectetur id', False]), dict_values([7, 125, 'aut quasi autem iste tempore illum possimus', False]), dict_values([7, 126, 'ut asperiores perspiciatis veniam ipsum rerum saepe', True]), dict_values([7, 127, 'voluptatem libero consectetur rerum ut', True]), dict_values([7, 128, 'eius omnis est qui voluptatem autem', False]), dict_values([7, 129, 'rerum culpa quis harum', False]), dict_values([7, 130, 'nulla aliquid eveniet harum laborum libero alias ut unde', True]), dict_values([7, 131, 'qui ea incidunt quis', False]), dict_values([7, 132, 'qui molestiae voluptatibus velit iure harum quisquam', True]), dict_values([7, 133, 'et labore eos enim rerum consequatur sunt', True]), dict_values([7, 134, 'molestiae doloribus et laborum quod ea', False]), dict_values([7, 135, 'facere ipsa nam eum voluptates reiciendis vero qui', False]), dict_values([7, 136, 'asperiores illo tempora fuga sed ut quasi adipisci', False]), dict_values([7, 137, 'qui sit non', False]), dict_values([7, 138, 'placeat minima consequatur rem qui ut', True]), dict_values([7, 139, 'consequatur doloribus id possimus voluptas a voluptatem', False]), dict_values([7, 140, 'aut consectetur in blanditiis deserunt quia sed laboriosam', True]), dict_values([8, 141, 'explicabo consectetur debitis voluptates quas quae culpa rerum non', True]), dict_values([8, 142, 'maiores accusantium architecto necessitatibus reiciendis ea aut', True]), dict_values([8, 143, 'eum non recusandae cupiditate animi', False]), dict_values([8, 144, 'ut eum exercitationem sint', False]), dict_values([8, 145, 'beatae qui ullam incidunt voluptatem non nisi aliquam', False]), dict_values([8, 146, 'molestiae suscipit ratione nihil odio libero impedit vero totam', True]), dict_values([8, 147, 'eum itaque quod reprehenderit et facilis dolor autem ut', True]), dict_values([8, 148, 'esse quas et quo quasi exercitationem', False]), dict_values([8, 149, 'animi voluptas quod perferendis est', False]), dict_values([8, 150, 'eos amet tempore laudantium fugit a', False]), dict_values([8, 151, 'accusamus adipisci dicta qui quo ea explicabo sed vero', True]), dict_values([8, 152, 'odit eligendi recusandae doloremque cumque non', False]), dict_values([8, 153, 'ea aperiam consequatur qui repellat eos', False]), dict_values([8, 154, 'rerum non ex sapiente', True]), dict_values([8, 155, 'voluptatem nobis consequatur et assumenda magnam', True]), dict_values([8, 156, 'nam quia quia nulla repellat assumenda quibusdam sit nobis', True]), dict_values([8, 157, 'dolorem veniam quisquam deserunt repellendus', True]), dict_values([8, 158, 'debitis vitae delectus et harum accusamus aut deleniti a', True]), dict_values([8, 159, 'debitis adipisci quibusdam aliquam sed dolore ea praesentium nobis', True]), dict_values([8, 160, 'et praesentium aliquam est', False]), dict_values([9, 161, 'ex hic consequuntur earum omnis alias ut occaecati culpa', True]), dict_values([9, 162, 'omnis laboriosam molestias animi sunt dolore', True]), dict_values([9, 163, 'natus corrupti maxime laudantium et voluptatem laboriosam odit', False]), dict_values([9, 164, 'reprehenderit quos aut aut consequatur est sed', False]), dict_values([9, 165, 'fugiat perferendis sed aut quidem', False]), dict_values([9, 166, 'quos quo possimus suscipit minima ut', False]), dict_values([9, 167, 'et quis minus quo a asperiores molestiae', False]), dict_values([9, 168, 'recusandae quia qui sunt libero', False]), dict_values([9, 169, 'ea odio perferendis officiis', True]), dict_values([9, 170, 'quisquam aliquam quia doloribus aut', False]), dict_values([9, 171, 'fugiat aut voluptatibus corrupti deleniti velit iste odio', True]), dict_values([9, 172, 'et provident amet rerum consectetur et voluptatum', False]), dict_values([9, 173, 'harum ad aperiam quis', False]), dict_values([9, 174, 'similique aut quo', False]), dict_values([9, 175, 'laudantium eius officia perferendis provident perspiciatis asperiores', True]), dict_values([9, 176, 'magni soluta corrupti ut maiores rem quidem', False]), dict_values([9, 177, 'et placeat temporibus voluptas est tempora quos quibusdam', False]), dict_values([9, 178, 'nesciunt itaque commodi tempore', True]), dict_values([9, 179, 'omnis consequuntur cupiditate impedit itaque ipsam quo', True]), dict_values([9, 180, 'debitis nisi et dolorem repellat et', True]), dict_values([10, 181, 'ut cupiditate sequi aliquam fuga maiores', False]), dict_values([10, 182, 'inventore saepe cumque et aut illum enim', True]), dict_values([10, 183, 'omnis nulla eum aliquam distinctio', True]), dict_values([10, 184, 'molestias modi perferendis perspiciatis', False]), dict_values([10, 185, 'voluptates dignissimos sed doloribus animi quaerat aut', False]), dict_values([10, 186, 'explicabo odio est et', False]), dict_values([10, 187, 'consequuntur animi possimus', False]), dict_values([10, 188, 'vel non beatae est', True]), dict_values([10, 189, 'culpa eius et voluptatem et', True]), dict_values([10, 190, 'accusamus sint iusto et voluptatem exercitationem', True]), dict_values([10, 191, 'temporibus atque distinctio omnis eius impedit tempore molestias pariatur', True]), dict_values([10, 192, 'ut quas possimus exercitationem sint voluptates', False]), dict_values([10, 193, 'rerum debitis voluptatem qui eveniet tempora distinctio a', True]), dict_values([10, 194, 'sed ut vero sit molestiae', False]), dict_values([10, 195, 'rerum ex veniam mollitia voluptatibus pariatur', True]), dict_values([10, 196, 'consequuntur aut ut fugit similique', True]), dict_values([10, 197, 'dignissimos quo nobis earum saepe', True]), dict_values([10, 198, 'quis eius est sint explicabo', True]), dict_values([10, 199, 'numquam repellendus a magnam', True]), dict_values([10, 200, 'ipsam aperiam voluptates qui', False])]
실무에서는 서로 다른 언어 간에 데이터를 교환하거나 크롤링을 통해 데이터를 가져오거나 Open API를 사용하여 함수를 호출할 때 JSON 형태의 파일을 많이 사용한다. JSON 파일을 이해하면 이러한 작업을 보다 수월하게 진행할 수 있다.