【问题标题】:How to decode Json in python and iterate如何在python中解码Json并进行迭代
【发布时间】:2016-03-10 13:22:06
【问题描述】:

我是 python 新手,我正在向 python 发送一个 php json 编码数组 像这样:

$myArray = array(1,5,8,6);
$jsonArray = json_encode($myArray);

exec("python ".$absPath."/myPythonFile.py $absPath $parm $jsonArray",$out);

这是python代码:

from pydfs_lineup_optimizer import *
import sys
import json

optimizer = LineupOptimizer(FanDuelBasketballSettings)
optimizer.load_players_from_CSV("test_new.json")
try:
    players_that_you_want = []
    for number in sys.argv[3]:
        print number
    lineups = optimizer.optimize()
    for l in lineups:
        print(l)
except LineupOptimizerException as e:
    print(e)

当我尝试在 python 文件中打印 number 变量时,python 是这样返回的:

[
1
,
5
,
8
,
6
]

我想要这样:

1
5
8
6

知道我做错了什么吗?

【问题讨论】:

  • 你似乎没有做任何事情来解码 JSON。
  • .load_players_from_CSV 听起来像一个 CSV 解码器; JSON 不是 CSV 的一种形式。 Python 在json 模块中具有出色的 JSON 解码和编码功能。但是,既然您只是传输一个简单的整数数组,为什么还要将其编码为 JSON?
  • 不过,他实际上并没有询问函数load_players_from_CSV()。他想知道为什么print number 输出的是[1,5 等...而不是1586。。跨度>
  • @chuck 确切地说。当我从 php 发送 json 编码数组时,为什么它在 python 中转换为字符串。任何想法的家伙
  • @Rahul,检查我的答案。

标签: php python arrays json


【解决方案1】:

参数是作为字符串发送的,因此您实际上并没有使用循环将其拆分为正确的值。您可以尝试去掉方括号并使用split(',')

input = "[1,2,3,4]"
processed_input = input.strip('[]').split(',')

上面的代码可以完成这项工作。

【讨论】:

  • 是的,你给了正确的方向,我得到了解决方案。
【解决方案2】:

这是我们需要做的:

from pydfs_lineup_optimizer import *
import sys
import json

optimizer = LineupOptimizer(FanDuelBasketballSettings)
optimizer.load_players_from_CSV("test_new.json")
try:
    players_that_you_want = []
    for number in json.loads(sys.argv[3]):
        print number
    lineups = optimizer.optimize()
    for l in lineups:
        print(l)
except LineupOptimizerException as e:
    print(e)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    相关资源
    最近更新 更多