例如,我有以下 JSON:
{
"name": "test",
"version": "0.2.0",
"lock": 1,
"requires": true,
"dependencies": {
"@yamm/double": {
"version": "7.14.5",
"requires": {
"@ginu/highlight": "^7.4.5"
}
},
"@dauh/data": {
"version": "7.15.0",
},
"@babel/core": {
"version": "7.12.3",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz",
"integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==",
"requires": {
"@babel/traverse": "^7.12.1",
"@babel/types": "^7.12.1",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
"json5": "^2.1.2",
"lodash": "^4.17.19",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
},
我只想requires用Python列印里面的資料
我正在嘗試不同的方法,但它不起作用。請幫忙。我該怎么做?
uj5u.com熱心網友回復:
另一種方法:
data = {
"name": "test",
"version": "0.2.0",
"lock": 1,
"requires": 'true',
"dependencies": {
"@yamm/double": {
"version": "7.14.5",
"requires": {
"@ginu/highlight": "^7.4.5"
}
},
"@dauh/data": {
"version": "7.15.0",
},
"@babel/core": {
"version": "7.12.3",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz",
"integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==",
"requires": {
"@babel/traverse": "^7.12.1",
"@babel/types": "^7.12.1",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
"json5": "^2.1.2",
"lodash": "^4.17.19",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
},
}
}
}
# Actual code starts here
for module, dependencies in data['dependencies'].items():
if requires := dependencies.get('requires'):
print (f'Module {module} requires: ')
for req, version in requires.items():
print (f'\t{req}: {version}')
輸出:
Module @yamm/double requires:
@ginu/highlight: ^7.4.5
Module @babel/core requires:
@babel/traverse: ^7.12.1
@babel/types: ^7.12.1
convert-source-map: ^1.7.0
debug: ^4.1.0
gensync: ^1.0.0-beta.1
json5: ^2.1.2
lodash: ^4.17.19
resolve: ^1.3.2
semver: ^5.4.1
source-map: ^0.5.0
uj5u.com熱心網友回復:
您可以使用 python 的 json 庫來決議您的 json。
import json
my_json = //your json statement
parsed_json = my_json.loads()
print(parsed_json["requires"])
uj5u.com熱心網友回復:
看起來你需要一個遞回的方法來解決這個問題。嘗試這個:-
import json
D = '''
{
"name": "test",
"version": "0.2.0",
"lock": 1,
"requires": true,
"dependencies": {
"@yamm/double": {
"version": "7.14.5",
"requires": {
"@ginu/highlight": "^7.4.5"
}
},
"@dauh/data": {
"version": "7.15.0"
},
"@babel/core": {
"version": "7.12.3",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz",
"integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==",
"requires": {
"@babel/traverse": "^7.12.1",
"@babel/types": "^7.12.1",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
"json5": "^2.1.2",
"lodash": "^4.17.19",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
}
}
}
}
'''
j = json.loads(D)
def requires(d):
for k, v in d.items():
if k == 'requires':
if isinstance(v, dict):
for _k, _v in v.items():
print(f'{_k}: {_v}')
else:
print(f'{k}: {v}')
else:
if isinstance(v, dict):
requires(v)
requires(j)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314440.html
