Python에서 JSON에서 변수 가져 오기 : 예기치 않은 오류

Brendan

JSON 파일을 읽고 변수를 사용하여 특정 폴더와 파일을 선택하고 다른 곳에 저장하는 스크립트를 만들려고합니다.

내 JSON은 다음과 같습니다.

{
    "source_type": "folder",
    "tar_type": "gzip",
    "tar_max_age": "10",
    "source_include": {"/opt/myapp/config", "/opt/myapp/db, /opt/myapp/randomdata"}
    "target_type": "tar.gzip",
    "target_path": "/home/user/targetA"

}

지금까지이 Python 코드가 있습니다.

import time
import os
import tarfile
import json
source_config = '/opt/myapp/config.JSON'
target_dir = '/home/user/targetA'

def main():
    with open('source_config', "r").decode('utf-8') as f:
        data = json.loads('source_config')
        for f in data["source_include", str]:
                full_dir = os.path.join(source, f)
                tar = tarfile.open(os.path.join(backup_dir, f+ '.tar.gzip'), 'w:gz')
                tar.add(full_dir)
                tar.close()

    for oldfile in os.listdir(backup_dir):
       if str(oldfile.time) < 20:
           print("int(oldfile.time)")

내 역 추적은 다음과 같습니다.

Traceback (most recent call last):
  File "/Users/user/Documents/myapp/test/point/test/Test2.py", line 16, in <module>
    with open('/opt/myapp/config.json', "r").decode('utf-8') as f:
AttributeError: 'file' object has no attribute 'decode'

이 문제를 어떻게 해결합니까?

Martijn Pieters

.decode()파일 개체에서 직접 호출하려고 합니다. 일반적으로 읽기 행에서 대신 수행합니다. 그러나 JSON의 경우이 작업을 수행 할 필요가 없습니다 . json라이브러리는 당신을 위해 이것을 처리합니다.

json.load()(no s)를 사용 하여 파일 객체에서 직접로드합니다.

with open(source_config) as f:
    data = json.load(f)

다음으로 다음을 사용하여 source_include주소를 지정해야합니다 .

for entry in data["source_include"]:
    base_filename = os.path.basename(entry)
    tar = tarfile.open(os.path.join(backup_dir, base_filename + '.tar.gzip'), 'w:gz')
    tar.add(full_dir)
    tar.close()

source_include가 사전이 아닌 배열이되도록 JSON도 수정해야합니다.

{
    "source_type": "folder",
    "tar_type": "gzip",
    "tar_max_age": "10",
    "source_include": ["/opt/myapp/config", "/opt/myapp/db", "/opt/myapp/randomdata"],
    "target_type": "tar.gzip",
    "target_path": "/home/user/targetA"

}

다음 os.listdir()으로 문자열 (경로가없는 상대 파일 이름) 인을 사용하여 파일 이름을 반복 합니다. 문자열에는 .time속성 이 없습니다. 파일 타임 스탬프를 읽으려면 os.stat()대신 호출 을 사용해야 합니다.

for filename in os.listdir(backup_dir):
    path = os.path.join(backup_dir, filename)
    stats = os.stat(path)
    if stats.st_mtime < time.time() - 20:
        # file was modified less than 20 seconds ago

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Query.Get에서 TypeError "예기치 않은 키워드 인수"가져 오기

분류에서Dev

route.js에서 예기치 않은 토큰 가져 오기

분류에서Dev

R "오류 :"} "에서 예기치 않은 '}'

분류에서Dev

Firebase JSON 가져 오기 오류 예기치 않은 토큰 ":"

분류에서Dev

예기치 않은 토큰 Doctype Html에서 오류 수신

분류에서Dev

JS에서 예기치 않은 토큰 바르 오류가

분류에서Dev

단순 R 함수의 구문 오류 (오류 : "}"에서 예기치 않은 '}')

분류에서Dev

Python 2.7에서 "__init __ ()에 예기치 않은 키워드 인수 'tcp_nodelay'가 있습니다."오류

분류에서Dev

Python 3에서 예기치 않은 들여 쓰기 오류

분류에서Dev

TypeError : __init __ ()에 예기치 않은 키워드 인수 오류가 있습니다.

분류에서Dev

Firebase 저장소 규칙 오류 : 예기치 않은 식별자입니다. 문서에서 가져온 기능

분류에서Dev

Python은 클래스 내에서 변수 이름 가져 오기

분류에서Dev

PHP에서 JSON 디코딩 오류 : "예기치 않은 문자"

분류에서Dev

UTF-16 문자열에서 예기치 않은 EOF 가져 오기

분류에서Dev

app.bundle.js angular2에서 예기치 않은 토큰 가져 오기

분류에서Dev

URL에서 변수 가져 오기 오류 제공

분류에서Dev

배치 파일 실행 오류-이 수준에서 예기치 않은 전환

분류에서Dev

Supervisord에서 Python 가져 오기 오류

분류에서Dev

가져 오기에서 SyntaxError : JSON 위치 0의 예기치 않은 토큰 T를 반환합니다.

분류에서Dev

함수에서 변수 가져 오기?

분류에서Dev

R에서 left_join에 예기치 않은 오류가 표시됨

분류에서Dev

API 가져 오기 오류 : SyntaxError : 예기치 않은 JSON 입력 끝

분류에서Dev

콜백 함수에서 예기치 않은 "부적합 인수"오류 발생

분류에서Dev

Internet Explorer를 시작할 때 예기치 않은 오류가 발생했습니다. 창 핸들 (NoSuchDriver)에서 문서를 가져올 수 없습니다.

분류에서Dev

Mac이 아닌 Linux에서만 오류 : 예기치 않은 키워드 인수 'kwargs'가 있습니다.

분류에서Dev

Python에서 해결되지 않은 가져 오기 '셀레늄'오류

분류에서Dev

목록보기 활동에서 예기치 않은 오류

분류에서Dev

잡히지 않은 SyntaxError : mysql에서 데이터를 가져 오려고 할 때 예기치 않은 JSON 입력 오류 종료

분류에서Dev

R html_nodes () 함수에서 예기치 않은 문자 '$'오류 발생

Related 관련 기사

  1. 1

    Query.Get에서 TypeError "예기치 않은 키워드 인수"가져 오기

  2. 2

    route.js에서 예기치 않은 토큰 가져 오기

  3. 3

    R "오류 :"} "에서 예기치 않은 '}'

  4. 4

    Firebase JSON 가져 오기 오류 예기치 않은 토큰 ":"

  5. 5

    예기치 않은 토큰 Doctype Html에서 오류 수신

  6. 6

    JS에서 예기치 않은 토큰 바르 오류가

  7. 7

    단순 R 함수의 구문 오류 (오류 : "}"에서 예기치 않은 '}')

  8. 8

    Python 2.7에서 "__init __ ()에 예기치 않은 키워드 인수 'tcp_nodelay'가 있습니다."오류

  9. 9

    Python 3에서 예기치 않은 들여 쓰기 오류

  10. 10

    TypeError : __init __ ()에 예기치 않은 키워드 인수 오류가 있습니다.

  11. 11

    Firebase 저장소 규칙 오류 : 예기치 않은 식별자입니다. 문서에서 가져온 기능

  12. 12

    Python은 클래스 내에서 변수 이름 가져 오기

  13. 13

    PHP에서 JSON 디코딩 오류 : "예기치 않은 문자"

  14. 14

    UTF-16 문자열에서 예기치 않은 EOF 가져 오기

  15. 15

    app.bundle.js angular2에서 예기치 않은 토큰 가져 오기

  16. 16

    URL에서 변수 가져 오기 오류 제공

  17. 17

    배치 파일 실행 오류-이 수준에서 예기치 않은 전환

  18. 18

    Supervisord에서 Python 가져 오기 오류

  19. 19

    가져 오기에서 SyntaxError : JSON 위치 0의 예기치 않은 토큰 T를 반환합니다.

  20. 20

    함수에서 변수 가져 오기?

  21. 21

    R에서 left_join에 예기치 않은 오류가 표시됨

  22. 22

    API 가져 오기 오류 : SyntaxError : 예기치 않은 JSON 입력 끝

  23. 23

    콜백 함수에서 예기치 않은 "부적합 인수"오류 발생

  24. 24

    Internet Explorer를 시작할 때 예기치 않은 오류가 발생했습니다. 창 핸들 (NoSuchDriver)에서 문서를 가져올 수 없습니다.

  25. 25

    Mac이 아닌 Linux에서만 오류 : 예기치 않은 키워드 인수 'kwargs'가 있습니다.

  26. 26

    Python에서 해결되지 않은 가져 오기 '셀레늄'오류

  27. 27

    목록보기 활동에서 예기치 않은 오류

  28. 28

    잡히지 않은 SyntaxError : mysql에서 데이터를 가져 오려고 할 때 예기치 않은 JSON 입력 오류 종료

  29. 29

    R html_nodes () 함수에서 예기치 않은 문자 '$'오류 발생

뜨겁다태그

보관