我是一个相当新的开发人员,正在尝试从该文件中解析“ id”值。遇到以下问题。
我的python代码:
import ast
from pathlib import Path
file = Path.home() /'AppData'/'Roaming'/'user-preferences-prod'
with open(file, 'r') as f:
contents = f.read()
ids = ast.literal_eval(contents)
profileids = []
for data in ids:
test= data.get('id')
profileids.append(test)
print(profileids))
这将返回错误:ValueError:格式错误的节点或字符串:<_ast.Name对象,位于0x0000023D8DA4D2E8>,其id为ast.literal_eval(contents)
我感兴趣的文件中的内容片段:
{"settings":{"defaults":{"value1":,"value2":,"value3":null,"value4":null,"proxyid":null,"sites":{},"sizes":[],"value5":false},"value6":true,"value11":,"user":{"value9":"","value8": ,"value7":"","value10":""},"webhook":"},'profiles':[{'billing': {'address1': '', 'address2': '', 'city': '', 'country': 'United States', 'firstName': '', 'lastName': '', 'phone': '', 'postalCode': '', 'province': '', 'usesBillingInformation': False}, 'createdAt': 123231231213212, 'id': '23123123123213, 'name': ''
我需要循环这段代码,因为我感兴趣的是多个id值,需要将它们全部输入到列表中。希望我已对所有这些都进行了解释。根据Windows,文件类型为“文件”,我只用记事本查看其内容。
答案 0 :(得分:0)
在我看来,您有一个文件,其字符串表示为dict
(词典)。因此,您需要做的是:
string_of_dict
→ast.literal_eval()
→dict
ids
。 dict
库将dict
的字符串表示形式转换为ast
,如下所示。 Reference import ast
string_of_dict = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
ast.literal_eval(string_of_dict)
输出:
{'muffin': 'lolz', 'foo': 'kitty'}
类似的事情最有可能起作用。您可能需要稍微调整一下。
import ast
with open(file, 'r') as f:
contents = f.read()
ids = ast.literal_eval(contents)
profileids = []
for data in ids:
test= data.get('id')
profileids.append(test)
print(profileids)