2016-06-02 7 views
5

में एक पायथन सरणी को खिला रहा है तो मैं अपनी कंपनी में वर्कफ़्लो के लिए एक स्वचालन स्क्रिप्ट पर काम कर रहा हूं। मैंने पाइथन में पूरी चीज लिखी है, क्योंकि हमारे अधिकांश डेटाबेस एपीआई पायथन में थे। हालांकि, हमारे डेटाबेस में से एक उनके एपीआई के लिए पर्ल का उपयोग करता है। यह निश्चित रूप से मुझे सप्ताहों में ले जाएगा अगर महीनों में अपने उत्कृष्ट एपीआई को पायथन में बंद करने के लिए नहीं। तो, और मुझे लगता है कि यह शायद एक साधारण समस्या है, मैं अपनी पायथन लिपि के मुख्य फ़ंक्शन से सरणी कैसे ले सकता हूं, इसे अपनी पर्ल स्क्रिप्ट में इनपुट के रूप में फ़ीड कर सकता हूं, फिर संशोधित संस्करण को वापस अपने मुख्य पायथन स्क्रिप्ट में वापस कर सकता हूं?एक पर्ल स्क्रिप्ट

किसी भी मदद के लिए बहुत बहुत धन्यवाद!

+0

डेटा क्रमबद्धता (भी "अचार बनाने के रूप में जाना पर एक नजर डालें "): [Perl] में (http://perlmaven.com/data-serialization-in-perl) और [पायथन में] (https://docs.python.org/2/library/pickle.html) –

+5

' जेएसओएन विभिन्न भाषाओं में डेटा प्रकारों का प्रतिनिधित्व करने में सक्षम होने के लिए काफी अच्छी शर्त है। – Sobrique

+2

@ माचिनियरिंग "पिकलिंग" एक पायथन-विशिष्ट शब्द है। – Dre

उत्तर

6

मैंने तीन स्क्रिप्ट का उपयोग करके एक उदाहरण बनाया है।

पहला वाला एक पायथन स्क्रिप्ट है जो एक सूची बनाता है, फिर इसे JSON फ़ाइल में लिखता है। उसके बाद हमारे पास एक पर्ल स्क्रिप्ट है जो JSON में पढ़ती है, इसे संशोधित करती है (सरणी में तीन और तत्व जोड़ती है), फिर इसे JSON डेटा फ़ाइल पर वापस लिखती है। पाइथन में आखिरी लिपि, जेएसओएन में पढ़ने और डेटा का उपयोग करने के तरीके को दिखाती है।

अजगर स्क्रिप्ट, एक सूची बनाते हैं, इसे बाहर एक json फ़ाइल

import json 

data = [1, 2, 3] 

with open('data.json', 'w') as jsonfile: 
    json.dump(data, jsonfile) 

डेटा फ़ाइल अब की तरह दिखता है पर लिखें:

[1, 2, 3] 

पर्ल स्क्रिप्ट, JSON फ़ाइल पढ़ता है, साथ mucks डेटा, यह पता वापस लिखता है:

:

use warnings; 
use strict; 

use JSON; 

my $file = 'data.json'; 

# read in json from Python 

my $json; 

{ 
    local $/; 
    open my $fh, '<', $file or die $!; 
    $json = <$fh>; 
    close $fh; 
} 

my $array = decode_json $json; 

# modify the list (array) 

push @$array, (4, 5, 6); 

# re-encode the changed data, write it back to a json file 

$json = encode_json $array; 
open my $fh, '>', $file or die $!; 
print $fh $json; 
close $fh or die $!; 

डाटा फ़ाइल अब की तरह दिखता है

[1, 2, 3, 4, 5, 6] 

अजगर स्क्रिप्ट, अद्यतन JSON फ़ाइल पढ़ता है, और इसे वापस बदल देती है एक सूची में:

import json 

file = 'data.json'; 
data = json.loads(open(file).read()) 

print(data) 

प्रिंटों:

[1, 2, 3, 4, 5, 6] 
+2

वाह धन्यवाद! यह वही चीज़ थी जो मैं ढूंढ रहा था! –

+0

आपका स्वागत है! – stevieb

संबंधित मुद्दे