回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想循环浏览一些json文件,比如</p>
<pre><code>{
"_notes": [],
"deviceid": "353422071089618",
"grp-milkuse/milksold": "0.0",
"hh_id": "0753628391",
"regdate": "2017-10-03",
"gpsloc": "-9.10112605948487 32.897751368000414 1488.8210801196851 4.0",
"grp-milkuse/milkprocess": "0.0",
"_xform_id_string": "ADGG-LNG01-20170725",
"hh_country": "2",
"meta/instanceID": "uuid:0b3b8257-f154-42e8-ae17-119bfa04ceca",
"_duration": "",
"visitdate": "2017-10-03",
"hh_region": "1007",
"_geolocation": [
-9.10112605948487,
32.897751368000414
],
"hh_district": "1037",
"datacollid": "0758990688",
"grp-milkuse/milkcalf": "0.0",
"_status": "submitted_via_web",
"formhub/uuid": "98dfbfd65ef24a92a46d6f794e748627",
"rpt_animrec": [
{
"rpt_animrec/grp_animrec/cowmilked": "3",
"rpt_animrec/calved": "2",
"rpt_animrec/grp_animrec/tagid": "TZN000404015233",
"rpt_animrec/injuries": "2",
"rpt_animrec/anim_weight/heartgirth": "150.0",
"rpt_animrec/anim_weight/bodyscore": "3.0",
"rpt_animrec/parasites": "2",
"rpt_animrec/grp_feedwater/watertype": "3",
"rpt_animrec/anim_weight/weight": "200.0",
"rpt_animrec/grp_feedwater/feedtype": "3 4",
"rpt_animrec/vaccinated": "2",
"rpt_animrec/served": "2"
},
{
"rpt_animrec/sirehastag": "2",
"rpt_animrec/siredetails/sirename": "Nil",
"rpt_animrec/grp_feedwater/feedtype": "2 3 4",
"rpt_animrec/siredetails/sirebreed": "2",
"rpt_animrec/vaccinated": "2",
"rpt_animrec/calved": "2",
"rpt_animrec/grp_animrec/tagid": "TZN000404015236",
"rpt_animrec/injuries": "2",
"rpt_animrec/anim_weight/bodyscore": "3.0",
"rpt_animrec/grp_service/dateserv": "2016-12-22",
"rpt_animrec/anim_weight/weight": "250.0",
"rpt_animrec/siredetails/sirecnty": "Nil",
"rpt_animrec/grp_servicedtls/servechange": "2",
"rpt_animrec/grp_servicedtls/servsourcebull": "1",
"rpt_animrec/parasites": "2",
"rpt_animrec/grp_feedwater/watertype": "3",
"rpt_animrec/served": "1",
"rpt_animrec/grp_animrec/cowmilked": "3",
"rpt_animrec/grp_servicedtls/servicechangeyes": "1",
"rpt_animrec/grp_servicedtls/sercost": "15000.0",
"rpt_animrec/anim_weight/heartgirth": "160.0",
"rpt_animrec/siredetails/sirecomp": "5",
"rpt_animrec/grp_service/servtype": "1"
},
{
"rpt_animrec/sirehastag": "2",
"rpt_animrec/siredetails/sirename": "Nill",
"rpt_animrec/grp_feedwater/feedtype": "1 3 4",
"rpt_animrec/siredetails/sirebreed": "2",
"rpt_animrec/vaccinated": "2",
"rpt_animrec/calved": "2",
"rpt_animrec/grp_animrec/tagid": "TZN000404015237",
"rpt_animrec/injuries": "2",
"rpt_animrec/anim_weight/bodyscore": "3.0",
"rpt_animrec/grp_service/dateserv": "2017-02-09",
"rpt_animrec/anim_weight/weight": "350.0",
"rpt_animrec/siredetails/sirecnty": "Nill",
"rpt_animrec/grp_servicedtls/servechange": "2",
"rpt_animrec/grp_servicedtls/servsourcebull": "1",
"rpt_animrec/parasites": "2",
"rpt_animrec/grp_feedwater/watertype": "3",
"rpt_animrec/served": "1",
"rpt_animrec/grp_animrec/cowmilked": "2",
"rpt_animrec/grp_servicedtls/servicechangeyes": "1",
"rpt_animrec/drydate": "2017-07-22",
"rpt_animrec/grp_servicedtls/sercost": "15000.0",
"rpt_animrec/anim_weight/heartgirth": "170.0",
"rpt_animrec/siredetails/sirecomp": "5",
"rpt_animrec/grp_service/servtype": "1"
}
],
"_bamboo_dataset_id": "",
"start_time": "2017-10-03T13:25:01.529+03",
"_uuid": "0b3b8257-f154-42e8-ae17-119bfa04ceca",
"_tags": [],
"grp-milkuse/milkprice": "0.0",
"_userform_id": "adggtnz_ADGG-LNG01-20170725",
"_submitted_by": null,
"meta/instanceName": "ADGG-LNG01-20170725-HH0753628391",
"enumtype": "2",
"hh_village": "4835",
"grp-milkuse/milkconsumed": "0.0",
"_submission_time": "2017-10-05T18:35:19",
"_version": "20170725",
"_attachments": [],
"end_time": "2017-10-03T13:31:28.876+03",
"hh_kebele": "1807",
"_id": 369982
</code></pre>
<p>}</p>
<p>我想循环几个类似这样的json文件,并将tagid[“rpt\u animrec/grp\u animrec/tagid”:“TZN000404015236”,]更改为具有不同的前缀。你知道吗</p>
<p>我想编写一个python脚本,它将循环遍历像这样的几个json文件并更改tagid。这是我目前掌握的密码</p>
<pre><code>import json
import os
#python code to update TZN to ETH
json_dir="/opt/new/file/20180116/"
json_dir_processed="/opt/new/file/20180116updated/"
for json_file in os.listdir(json_dir):
if json_file.endswith(".json"):
processed_json = "%s%s" % (json_dir_processed, json_file)
json_file = json_dir + json_file
print "Processing %s -> %s" % (json_file, processed_json)
with open(json_file, 'r') as f:
json_data = json.load(f)
json_data['TZN'] = json_data['ETH']
with open(processed_json, 'w') as f:
f.write(json.dumps(json_data, indent=4))
else:
print "%s not a JSON file" % json_file
</code></pre>