2012-01-31 5 views
1

나는 사전에 데이터를 만드는 cron 작업에서 실행되는 python 스크립트를 가지고 있습니다. 웹 페이지가 요청 될 때마다 그 데이터를 간단한 공백으로 구분 된 텍스트 파일에 쓰고 PHP로 읽는 중입니다.파일 입출력을 사용하여 PHP로 파이썬 사전을 전달하는 가장 좋은 방법

이 정보를 전달하는 올바른 방법은 무엇입니까? PHP에서 본질적으로 동일한 구조를 재구성하고 있기 때문에 필자가 지금하고있는 일은 확실히 어색해 보인다. PHP가 PHP 배열로 직접 읽을 수 있도록 파이썬 사전 (아마도 주문 사전이 필요합니다)을 디스크에 쓰려면 어떻게해야합니까?

이 전송 방법이 다소 고풍인지 여부에 대해 조금 걱정합니다. 대신 데이터베이스를 사용해야합니다. SQLlite? 파일이 업데이트 될 때 누군가 문제를 일으킬 수있는 페이지를로드 할까 걱정됩니다.

가볍고 단순한 것이 필요합니다. 그것을 지나치게 복잡하게 만들고 싶지는 마십시오. 미리 감사드립니다.

+0

은 다음과 같습니다 : http://codesnippets.joyent.com/

지금
import json myfile = open('data.json','w+') #create your dict json.dump(mydict,myfile) myfile.close() 

는 PHP에서 읽어 posts/show/252 – gorus

+0

space-CSV 파일은 JSON 덤프만큼 좋습니다. 그러나 그것은 당신이 가지고있는 데이터의 종류에 달려 있습니다. 그것은 글로벌 구성일까요, 아니면 실제로 당신이 일종의 스풀 디렉토리를 가지고 있습니까? 실제로는 단 하나의 목록일까요, 아니면 데이터베이스의 관계형 모델로부터 이익을 얻을 것입니까? (예를 들어 다른 데이터베이스 테이블을 쿼리하는 데 사용할 수 있습니까?) – mario

답변

2

모든 언어는 JSON을 읽을 수 있습니다. JSON은 단순히 데이터를 텍스트 형식으로 지정하는 것으로 모든 프로그램에서 쉽게 구문 분석 할 수 있습니다. JSON 파일로 사전을 작성하려면 다음을 수행하십시오 다른 사람이 그것을 어떻게

다음
$data = json_decode(file_get_contents("data.json")); 
+0

대단히 고마워. 데이터를 전달하는 JSON 메서드를 사용해 보겠습니다. 하나의 질문. 주문 하는게 어때? 주문 된 DICT를 사용하지 않으면 주문이 PHP에서 임의로 끝나지 않습니까? 나는 그런 식으로 명령을 사용하거나 PHP로 정렬해야한다고 생각하지 않는다. – Dave31415

+0

특정 순서를 원한다면 표준 파이썬 dict의 순서가 구현 세부 사항이므로 순서대로 dict 구현이 필요합니다. 파이썬 2.7의 collections 모듈에는 [OrderedDict] (http://docs.python.org/dev/library/collections.html#collections.OrderedDict) – bigblind

+0

이 있습니다. 사실, 괜찮습니다. 나는 실제로 사전들을 가지고있다. 내가 신경 써야 할 것은 배열 순서가 보존되어야한다는 것이다. – Dave31415

1

PHP가 json 데이터를 처리하는지 여부는 알 수 없지만, 그렇다면 아마도 그럴 것입니다.

그리고 사실

은, PHP는 JSON 데이터를 처리 않습니다 ... 더보기 위해 json 모듈 documentation를 참조하십시오 http://php.net/manual/en/book.json.php

이 데이터를 전송하는 비교적 간단하지만 강력한 방법이 될 것이다.

+1

PHP는 JSON을 여러 가지 방법으로 읽습니다. cron 작업을'output.json.tmp'와 같은 파일에 쓰고, 쓰기가 끝나면 파일을'output.json'으로 옮기십시오. 이것은'output.json'이 항상 완전한 파일임을 보장합니다. – lunixbochs

+0

몇 밀리 초 안에 파일을 읽으려고하면 PHP가 오류를 던질 것인가? 임시 파일을 실제 파일로 옮깁니 까? 아니면 그냥 기다려 다시 시도할까요? – Dave31415

관련 문제