members.json
নীচের মত আমার কাছে একটি JSON ফাইল রয়েছে ।
{
"took": 670,
"timed_out": false,
"_shards": {
"total": 8,
"successful": 8,
"failed": 0
},
"hits": {
"total": 74,
"max_score": 1,
"hits": [
{
"_index": "2000_270_0",
"_type": "Medical",
"_id": "02:17447847049147026174478:174159",
"_score": 1,
"_source": {
"memberId": "0x7b93910446f91928e23e1043dfdf5bcf",
"memberFirstName": "Uri",
"memberMiddleName": "Prayag",
"memberLastName": "Dubofsky"
}
},
{
"_index": "2000_270_0",
"_type": "Medical",
"_id": "02:17447847049147026174478:174159",
"_score": 1,
"_source": {
"memberId": "0x7b93910446f91928e23e1043dfdf5bcG",
"memberFirstName": "Uri",
"memberMiddleName": "Prayag",
"memberLastName": "Dubofsky"
}
}
]
}
}
আমি ব্যবহার করে এটি বিশ্লেষণ করতে চান bash
স্ক্রিপ্ট পেতে কেবল পঠন ক্ষেত্র তালিকা memberId
।
প্রত্যাশিত আউটপুটটি হ'ল:
memberIds
-----------
0x7b93910446f91928e23e1043dfdf5bcf
0x7b93910446f91928e23e1043dfdf5bcG
আমি নিম্নলিখিত বাশ + পাইথন কোড যুক্ত করার চেষ্টা করেছি .bashrc
:
function getJsonVal() {
if [ \( $# -ne 1 \) -o \( -t 0 \) ]; then
echo "Usage: getJsonVal 'key' < /tmp/file";
echo " -- or -- ";
echo " cat /tmp/input | getJsonVal 'key'";
return;
fi;
cat | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["'$1'"]';
}
এবং তারপরে বলা হয়:
$ cat members.json | getJsonVal "memberId"
তবে এটি ছুড়ে ফেলে:
Traceback (most recent call last):
File "<string>", line 1, in <module>
KeyError: 'memberId'
উল্লেখ
python
, এবং bash
কি পার্স JSON ব্যবহার করা হয়। উদাহরণস্বরূপ, ত্রুটিটি অবশ্যই একটি অজগর ত্রুটি, বাশ ত্রুটি নয়।
python
, তার লক্ষ্যটি ব্যবহার করার অর্থ নয়python